我已经创建了一个自定义AMI,使用基于Canonical官方Ubuntu 18.04 AMI的Packer安装了Nginx,但在部署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"
]
}
]
我试着删除了最后两个命令,但似乎没有任何区别。
我们尝试了这种方法,但无法在机器启动时运行自定义脚本。我假设您正在使用Terraform/Ansible/Cloudformation来提供资源。我们将用户数据脚本移动到地形脚本(也可以在Ansible中完成(,该脚本提供基础设施并分配AMI。它对我们有效。