Amazon web services ec2启动时未运行用户数据脚本

Amazon web services ec2启动时未运行用户数据脚本,amazon-web-services,amazon-ec2,user-data,Amazon Web Services,Amazon Ec2,User Data,我正在尝试自动创建ec2。我从自定义AMI启动一个实例,并在启动配置期间指定一个用户数据脚本。我注意到没有执行用户数据脚本。我如何对此进行故障排除,我遗漏了什么?也许我可以在AMI的某个地方指定脚本?先谢谢你 我的启动脚本: #!/bin/sh sudo su systemctl start docker docker run -it --publish 8080:8080 exampleapplication:latest 更新:我删除了sudo su,并添加了一个echo命令用于调试。我检

我正在尝试自动创建ec2。我从自定义AMI启动一个实例,并在启动配置期间指定一个用户数据脚本。我注意到没有执行用户数据脚本。我如何对此进行故障排除,我遗漏了什么?也许我可以在AMI的某个地方指定脚本?先谢谢你

我的启动脚本:

#!/bin/sh
sudo su
systemctl start docker
docker run -it --publish 8080:8080 exampleapplication:latest
更新:我删除了
sudo su
,并添加了一个echo命令用于调试。我检查了系统日志,看到了我的回音字符串。这就是我下一行的内容

[   16.291460] cloud-init[3200]: plsssssss
[   17.378345] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   17.394716] Bridge firewalling registered
[   17.412835] nf_conntrack version 0.5.0 (8192 buckets, 32768 max)
[   17.479117] Initializing XFRM netlink socket
[   17.489731] Netfilter messages via NETLINK v0.30.
[   17.502725] ctnetlink v0.93: registering with nfnetlink.
[   17.546680] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready
[   18.114688] cloud-init[3200]: the input device is not a TTY
[   18.121279] cloud-init[3200]: May 31 15:11:07 cloud-init[3200]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [1]
[   18.131795] cloud-init[3200]: May 31 15:11:07 cloud-init[3200]: cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts)
[   18.142379] cloud-init[3200]: May 31 15:11:07 cloud-init[3200]: util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python2.7/site-packages/cloudinit/config/cc_scripts_user.pyc'>) failed
[16.291460]云初始化[3200]:plsss
[17.378345]网桥:默认情况下,通过arp/ip/IP6表进行过滤不再可用。如果需要,请更新脚本以加载br_netfilter。
[17.394716]桥梁防火墙已注册
[17.412835]nf_conntrack版本0.5.0(8192桶,最大32768桶)
[17.479117]初始化XFRM netlink套接字
[17.489731]通过NETLINK v0.30过滤消息。
[17.502725]ctnetlink v0.93:向nfnetlink注册。
[17.546680]IPv6:ADDRCONF(网络开发):docker0:链接未就绪
[18.114688]云初始化[3200]:输入设备不是TTY
[18.121279]云初始化[3200]:5月31日15:11:07云初始化[3200]:util.py[警告]:运行失败/var/lib/cloud/instance/scripts/part-001[1]
[18.131795]云初始化[3200]:5月31日15:11:07云初始化[3200]:cc_scripts_user.py[警告]:无法运行模块脚本用户(脚本位于/var/lib/cloud/instance/scripts中)
[18.142379]云初始化[3200]:5月31日15:11:07云初始化[3200]:util.py[警告]:运行模块脚本用户()失败

我怀疑第一个“sudo su”。这将启动新的非登录根shell。它可能会影响正在运行用户数据的现有shell的执行。不需要。不知道你为什么把它放在那里。用户数据仍以root用户身份运行

将其替换为“echo start”。重新启动。检查您的系统日志,您应该会在管理控制台中看到该回显

更新

还要加上这个


这是解决用户数据问题的主要救星。

谢谢,但这并不意味着如果您在日志中看到回音,那么它就正常工作了。请注意我上面的更新。您是否检查了使用数据日志
/var/log/cloud init output.log
等等,您在日志中看到了回声输出吗?如果是,则表示用户数据正在运行。继续在每个命令之前添加echo,并确认其运行的距离