这几天我搜索了很多关于“用户数据脚本不起作用”的话题,但到现在为止,我还没有得到任何关于我的情况,请帮助我弄清楚发生了什么,非常感谢!
根据 AWS 用户资料的解释:
在 Amazon EC2中启动实例时,可以选择将用户数据传递给实例,这些数据可用于执行常见的自动配置任务,甚至在实例启动后运行脚本。
所以我尝试在实例启动时传递我自己的用户数据,这是我的用户数据:
\#!/bin/bash
echo 'test' > /home/ec2-user/user-script-output.txt
但是在这个路径中没有文件: /home/ec2-user/user-script-output.txt
我检查了 /var/lib/cloud/instance/user-data.txt
,该文件是存在的,并与我的用户数据脚本相同。
我还检查了 /var/log/cloud-init.log
中的日志,没有错误消息。
但是如果我用 Amazon linux (2014.09.01)启动一个新的实例,用户数据脚本就可以工作了,但是我不确定我的 AMI (基于 Amazon linux)和 Amazon linux 之间有什么区别。
我看到的唯一不同的部分是如果我运行这个脚本:
sudo yum list installed | grep cloud-init
我的 AMI:
Cloud-init.诺亚0.7.2-8.33。Amzn1@amzn-main
亚马逊 linux:
Cloud-init.诺亚0.7.2-8.33。安装了 amzn1
我不确定这就是原因?
如果您需要更多的信息,我很乐意提供,请让我知道在我自己的 AMI 发生了什么,如何修复它?
非常感谢
更新
刚从这个 邮寄上找到了答案,
如果我在用户数据文件的顶部添加 # cloud-boothook,它就可以工作了!
#cloud-boothook
#!/bin/bash
echo 'test' > /home/ec2-user/user-script-output.txt
但还是不知道为什么。