gpt4 book ai didi

amazon-web-services - 如何使 EC2 用户数据在使用 Packer 制作的新构建的 AMI 上工作

转载 作者:行者123 更新时间:2023-12-04 19:05:45 26 4
gpt4 key购买 nike

我可以很好地构建 AMI 镜像。但他们已经停止使用 EC2 用户数据:

有用户数据:

$ cat /tmp/user_data.sh
#!/bin/bash

touch /tmp/i_have_user_data /root/i_have_user_data

我可以启动一个普通的 Ubuntu 镜像:
aws ec2 run-instances --instance-type m3.medium --image-id ami-eed10e86 --user-data file:///tmp/user_data.sh

它有效:
ubuntu@ip-10-165-90-180:~$ ls /tmp/i_have_user_data

/tmp/i_have_user_data

但是如果我基于那个构建一个 AMI,使用 Packer:
"builders": [
{
"type": "amazon-ebs",
"region": "us-east-1",
"source_ami": "ami-eed10e86",
"instance_type": "m3.large",
"ssh_username": "ubuntu",
"tags": {
"OS_Version": "Ubuntu",
"Release": "LTS"
}
}
],

...并以与以前完全相同的方式运行,/tmp 中没有任何内容。但是,如果您运行 ec2metadata,则很明显存在用户数据:
ramdisk-id: unavailable
reserveration-id: unavailable
security-groups: default
user-data: #!/bin/bash

touch /tmp/i_have_user_data /root/i_have_user_data

我很确定这是一个状态问题,删除状态文件将使这一切神奇地工作。或者,有一个技巧可以让云最终 Upstart 脚本工作,这可能是坏的。反正我还没有发现。

更新 :

我通过将用户数据脚本变成了一个 Bootook 来使它工作:
#cloud-boothook
#!/bin/sh
echo "RUNNING USER DATA SCRIPT"

仍在寻找他们停止工作的原因的解释。 Cloud Init 的文档越来越好,但还有很长的路要走。

最佳答案

Packer 创建您的镜像,然后在制作 AMI 之前拍摄快照。这是你的第一次开机。此时你需要启动实例,根据 Ubuntu,它会清理 /tmp目录。

我会尝试将文件放在其他地方,看看它是否仍然存在。

#cloud-boothook鉴于说明您负责禁用它的文档,每次都会运行。

关于amazon-web-services - 如何使 EC2 用户数据在使用 Packer 制作的新构建的 AMI 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com