我们烘焙 AMI,最近我想运行一些用户数据脚本,以便在实例启动完成并投入使用时通知云形成。我使用 cfn-signal 来执行此操作。在原始 ubuntu 映像上,脚本将执行,但在烘焙我们的自定义 AMI 后,用户数据脚本不会运行。
如果我将“#cloud-boothook”放在脚本顶部,它确实会执行,但因为它执行得太早,所以对于通知机器何时启动没有用。我希望有人知道向 cloudinit 指示这是机器首次启动的标志或文件在哪里。
我还尝试按照建议修改配置这里
我知道在 AMI 创建过程之前必须有一个可以删除的标志或文件,但无法找到有关该标志或文件的任何信息。
答案1
在我测试时,目录中有一些引导数据/var/lib/cloud
。在我清除该目录后,用户数据脚本正常工作。
rm -rf /var/lib/cloud/*
答案2
您需要确保 cloud-init 在这段时间内没有运行。否则您需要再次删除它。
/var/lib/cloud/
如果您尝试删除内部用户数据,则尤其如此。在这种情况下,您应该使用类似以下内容:
echo "rm -rf /var/lib/cloud/*" | at now + 1 min
在用户数据脚本的末尾。