【发布时间】:2015-01-21 02:11:07
【问题描述】:
这几天我搜索了很多关于“user-data script is not working”的话题,但是直到现在我还没有对我的情况有任何了解,请帮我弄清楚发生了什么,谢谢很多!
根据AWSUser-data解释:
当您在 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.noarch 0.7.2-8.33.amzn1 @amzn-main
亚马逊 Linux:
cloud-init.noarch 0.7.2-8.33.amzn1 已安装
我不确定是不是这个原因?
如果您需要更多信息,我很乐意提供,请告诉我在我自己的 AMI 中发生了什么以及如何修复它?
非常感谢
更新
刚刚从这个post找到答案,
如果我在用户数据文件的顶部添加#cloud-boothook,它会起作用!
#cloud-boothook
#!/bin/bash
echo 'test' > /home/ec2-user/user-script-output.txt
但仍然不知道为什么。
【问题讨论】:
-
#cloud-boothook 解决方案对我不起作用。 UserData 仍未运行。
-
现在有一个官方文档页面。经过所有的尝试,这终于对我有用了。aws.amazon.com/premiumsupport/knowledge-center/…
标签: linux amazon-web-services amazon-ec2 user-data