对于从另一个实例创建的 AMI 启动的实例,Cloud-init 不会在首次启动时运行

对于从另一个实例创建的 AMI 启动的实例,Cloud-init 不会在首次启动时运行

我们使用用户数据脚本通过 cloud-init 配置 AWS EC2 实例 (Ubuntu 20.04)。我们注意到,如果用户数据脚本在从另一个已启动实例创建的自定义 AMI 启动的实例上运行,则不会执行这些脚本。

我们创建一个具有通用工具和框架的中间 AMI,并将其重新用于特定需求 -

  1. 首先,我们从已发布的 AMI 启动一个实例。用户数据脚本在此实例上首次启动时完美执行。
  2. 我们从第一步启动的实例创建一个中间 AMI。
  3. 然后从中间 AMI 启动另一个实例。

我们也在从中间 AMI 启动的实例中提供了用户数据脚本,但不知何故该脚本无法执行。我观察到cloud-init的元数据爬虫服务(cloud-init.service)在步骤 3 中没有运行,因此用户脚本没有执行。

我们已经尝试在创建中间 AMI 之前清理 cloud-init 缓存,以便 cloud-init 可以在新实例上首次启动时运行 [参考]-

sudo cloud-init clean --logs --seed

我也尝试清理/etc/machine-id共享这里但没有任何效果。

我是否缺少某些东西来清理 cloud-init 以便它可以作为新实例的首次启动运行?

相关内容