如何让userdata在自定义的Ubuntu18.04AMI上执行?

如何让userdata在自定义的Ubuntu18.04AMI上执行?,ubuntu,amazon-ec2,terraform,packer,cloud-init,Ubuntu,Amazon Ec2,Terraform,Packer,Cloud Init,我已经创建了一个自定义AMI,其中Nginx是使用基于Canonical官方Ubuntu 18.04 AMI的Packer安装的,但是在部署Packer生成的AMI时,我很难让userdata执行 以下是我在Packer构建中执行的shell命令: “供应者”:[ { “类型”:“外壳”, “内联”:[ “sudo apt获得更新”, “sudo apt获得升级-y”, “sudo apt get install nginx-y”, “sudorm-f/var/log/cloud init.l

我已经创建了一个自定义AMI,其中Nginx是使用基于Canonical官方Ubuntu 18.04 AMI的Packer安装的,但是在部署Packer生成的AMI时,我很难让userdata执行

以下是我在Packer构建中执行的shell命令:


“供应者”:[
{
“类型”:“外壳”,
“内联”:[
“sudo apt获得更新”,
“sudo apt获得升级-y”,
“sudo apt get install nginx-y”,
“sudorm-f/var/log/cloud init.log”,
“sudorm-f/var/log/cloud init output.log”,
“sudo rm-rf/var/lib/cloud/*”,
“sudo cloud init init”,
“sudo云初始化模块-m最终版”
]
}
]


我已尝试删除最后2个命令,但似乎没有任何区别。

我们尝试了这种方法,但无法在机器启动时运行自定义脚本。我假设您正在使用Terraform/Ansible/Cloudformation来提供资源。我们将用户数据脚本移动到terraform脚本(也可以在Ansible中完成),该脚本提供基础设施并分配AMI。它对我们有用。

如何?您是否基于已经安装了cloud init的现有AMI(例如官方的Ubuntu/Amazon Linux AMI等)?或者您是从服务器ISO创建的?源AMI是Canonical的官方18.04版本。将更新问题描述以反映这一点。当重新调整AMI时,您为什么认为需要使用cloud init执行任何操作?你不需要在这里做任何事情,所以你应该能够在第三行之后停下来,这应该没问题。如果它不起作用,那么您能否显示您试图执行的用户数据,并显示在使用NGINX AMI运行实例时触发的相关cloud init日志?