AWS 自定义 AMI 未运行用户数据脚本

AWS 自定义 AMI 未运行用户数据脚本

我们烘焙 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

在用户数据脚本的末尾。

相关内容