我们使用用户数据脚本通过 cloud-init 配置 AWS EC2 实例 (Ubuntu 20.04)。我们注意到,如果用户数据脚本在从另一个已启动实例创建的自定义 AMI 启动的实例上运行,则不会执行这些脚本。
我们创建一个具有通用工具和框架的中间 AMI,并将其重新用于特定需求 -
- 首先,我们从已发布的 AMI 启动一个实例。用户数据脚本在此实例上首次启动时完美执行。
- 我们从第一步启动的实例创建一个中间 AMI。
- 然后从中间 AMI 启动另一个实例。
我们也在从中间 AMI 启动的实例中提供了用户数据脚本,但不知何故该脚本无法执行。我观察到cloud-init
的元数据爬虫服务(cloud-init.service
)在步骤 3 中没有运行,因此用户脚本没有执行。
我们已经尝试在创建中间 AMI 之前清理 cloud-init 缓存,以便 cloud-init 可以在新实例上首次启动时运行 [参考]-
sudo cloud-init clean --logs --seed
我也尝试清理/etc/machine-id
共享这里但没有任何效果。
我是否缺少某些东西来清理 cloud-init 以便它可以作为新实例的首次启动运行?