Cloud init 不附带我从 Amazon 上传的基本实例(Fedora 16 x86_64),因此我使用
sudo yum install cloud-init
现在当我通过启动这个实例时
ec2-run-instance -f my_bash_script
它复制my_bash_script
到/var/lib/cloud/instances/user-data.txt
但是,脚本中的命令似乎都没有执行(主要是初始化 chef)
我在网上看到 CentOS 使用用户数据脚本在cloud-init-user-script
首次启动时进行初始化。我以为 Fedora 也是这样,但我的系统上没有这个脚本。
我跑了
grep 'user-data.txt' /var/log/cloud-init.log
但它没有返回任何结果。
如何在 Fedora 上正确配置它,以便可以在创建实例时执行用户数据脚本?
答案1
检查用户数据中给出的脚本是否已创建为可执行脚本,/var/lib/cloud/instances/scripts/
如果已创建,则初始化部分已成功完成。
cloud-init-cfg all final
之后需要执行该命令,该命令会调用文件cloud_final_modules
中的部分参数/etc/cloud/cloud.cfg
。因此,创建一个可以执行该命令的新服务,并且该服务应命名为在服务之后运行cloud-init
。
答案2
我发现问题在于,cloud-init 在最后一刻匆忙加入 F16。因此,开箱即用的 cloud-init 仅适用于 cloud-config 设置。为了让 fedora 能够使用用户数据输入脚本,我决定使用 Fedora 18 AMI,其中默认包含此功能。