Cloudinit 服务是否仅在启动实例时的第一个启动周期运行



我发现了"用户数据脚本和云初始化指令仅在启动实例的第一个启动周期中运行"这句话。 在 AWS CloudInit 和 UserData 文档中。

我对此

感到困惑,现在我想知道如果我在启动实例时不附加公共 IP 会发生什么,似乎在第一次启动期间不会安装 userdata 中定义的数据包,因为实例目前无法访问互联网。

假设我与实例关联了一个新的弹性公网IP,然后重启,实例会再次运行用户数据吗?

我已经尝试过了,在我向实例添加 EIP 并重新启动它后,它确实尝试再次运行用户数据。但是它意外地未能再次安装所有数据包,因为它可以访问互联网。

谁能帮我弄清楚这一点?谢谢。

我上面提到的这句话请参考链接吹:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

如 AWS 文档 [1] 中所述,实例的用户数据仅在实例首次启动时执行。如果用户数据脚本需要网络连接,则脚本将无法按预期执行。如果这是一个问题,并且如果您的使用案例可能,则应考虑使用自定义 AMI 预配置实例。通过使用自定义 AMI,您可以跳过用户数据步骤,而不必依赖其成功执行(还可以提高预置实例的速度)。

[1] http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

最新更新