我已经创建了一个 amazon ec2 实例映像(AMI),我想在启动新实例时使用它,但我不知道在哪里存储我的 cloud-config.txt 文件以便它在第一次启动时执行。
我看到您可以在启动新实例时使用 aws 界面中的用户数据字段传递该文件,但我认为将文件放入 AMI 中可能会更容易,这样它就可以自动按原样使用,而无需我将云配置粘贴到用户数据字段中。
我在我的磁盘上找到了一个 cloud-config.txt 文件(在 /var/lib/cloud/instance 中),但看起来该文件是在启动时由 cloud init 生成的,所以如果我将某些内容放入其中,它将在下次启动时被覆盖。
我还尝试在 /var/lib/cloud/scripts/per-instance 目录中添加一个配置文件,但似乎该文件在启动时不会执行。
我还尝试在 /etc/cloud/cloud.cfg.d 中添加一个文件,但是当我这样做时,/var/log/cloud-init.log 中出现错误,提示模块失败。
以下是 yaml 样式配置文件内容:
#cloud-config
runcmd:
- cd /var
- sudo mkdir www
- cd www
- groupadd www
- [ sh, -c, "usermod -a -G www ec2-user" ]
- [ sh, -c, "chown -R root:www /var/www" ]
- chmod 2775 /var/www
- npm install grunt-cli -g
- bower install -g
final_message: "The system is finally up, after $UPTIME seconds"
# vim:syntax=yaml expandtab
我无法找到将这个文件放在哪里,以便 cloud init 在启动新实例时使用它
答案1
您无需将其放在实例上。而是在启动新实例时将其作为用户数据字段提供。