【发布时间】:2019-05-06 01:40:49
【问题描述】:
我已经使用基于 Canonical 的官方 Ubuntu 18.04 AMI 的 Packer 创建了一个安装了 Nginx 的自定义 AMI,但是在部署 Packer 生成的 AMI 时我无法获取用户数据来执行。
以下是我在 Packer 构建中执行的 shell 命令:
"provisioners": [
{
"type": "shell",
"inline": [
"sudo apt-get update",
"sudo apt-get upgrade -y",
"sudo apt-get install nginx -y",
"sudo rm -f /var/log/cloud-init.log",
"sudo rm -f /var/log/cloud-init-output.log",
"sudo rm -rf /var/lib/cloud/*",
"sudo cloud-init init",
"sudo cloud-init modules -m final"
]
}
]
我已尝试删除最后 2 个命令,但似乎没有任何区别。
【问题讨论】:
-
自定义AMI如何?您是否基于已安装 cloud-init 的现有 AMI(例如官方 Ubuntu/Amazon Linux AMI 等)?还是您是从服务器 ISO 创建的?
-
源 AMI 是 Canonical 的官方 18.04 版本。将更新问题描述以反映这一点。
-
是什么让您认为在重新烘焙 AMI 时需要对 cloud-init 执行任何操作?你不应该在这里做任何事情,所以你应该能够在你的第 3 行之后停下来,这应该没问题。如果它不起作用,那么您能否显示您尝试执行的用户数据并显示在使用 NGINX AMI 运行实例时触发的相关 cloud-init 日志?
标签: ubuntu amazon-ec2 terraform packer cloud-init