我正在尝试自动创建 EC2 实例。我从自定义 AMI 启动一个实例,并在启动配置期间指定 UserData 脚本。我注意到 UserData 脚本没有被执行。我该如何解决这个问题以及我缺少什么?我可以在 AMI 中的某个位置指定脚本吗?
这是我的启动脚本:
#!/bin/sh
sudo su
systemctl start docker
docker run -it --publish 8080:8080 exampleapplication:latest
UPDATE: 我删除了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
我怀疑是第一个'sudo su'。这就是启动新的非登录 root shell。它可能会影响运行用户数据的现有 shell 的执行。不需要。不知道为什么你把它放在那里。无论如何,用户数据都以 root 身份运行。
将其替换为“回显开始”。并重新启动。检查您的系统日志,您应该在管理控制台中看到 Echo
UPDATE
还要添加这个https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-log-user-data/ https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-log-user-data/
这是解决用户数据问题的主要救星。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)