gpt4 book ai didi

amazon-web-services - 带有 Packer 的 AWS user_data

转载 作者:行者123 更新时间:2023-12-03 23:28:19 25 4
gpt4 key购买 nike

因此,我尝试使用 Packer 创建 AWS 镜像并通过 user_data_file 指定一些用户数据。该文件的内容需要在实例启动时运行,因为它每次都是唯一的。我不能把它烤到 AMI 中。

使用packer我有以下几点:

{
"variables": {
"ami_name": ""
},
"builders": [
{
"type": "amazon-ebs",
"region": "us-east-1",
"source_ami": "ami-c8580bdf",
"instance_type": "t2.micro",
"ssh_username": "ubuntu",
"ami_name": "{{ user `ami_name` }}-{{ isotime | clean_ami_name }}",
"user_data_file": "user_data.sh",
"tags": {
"os_version": "ubuntu",
"built_by": "packer",
"build_on": "{{ isotime | clean_ami_name }}",
"Name": "{{ user `ami_name` }}"
}
}],
"provisioners": [
{
"type": "ansible",
"playbook_file": "playbook.yml",
"user": "ubuntu"
}]
}

我的 user_data shell 脚本的内容只是一个包的一些基本配置行,该包是通过在配置步骤中运行的 ansible 脚本安装的。观察 Packer 的输出,我可以确认 ansible 脚本都运行了。

Packer 完成并创建 AMI,但永远不会执行用户数据片段。结果图像中不存在它的记录。没有/userdata.log 文件和 /var/lib/cloud/instance/user-data.txt是空的 我觉得我错过了一些基本的东西,因为这对 Packer 来说应该是一件非常简单的事情。

最佳答案

重读这篇我想你可能误解了用户数据脚本如何与 Packer 一起工作。
user_data由 Packer 启动 EC2 实例时提供。在配置快照并保存为 AMI 后,此实例最终结束。

当您从创建的 AMI 启动新实例时,它没有相同的用户数据,它会获取您在启动此新实例时指定的用户数据。

初始(在您的模板中定义)用户数据的影响可能会或可能不会出现在新实例中,具体取决于更改是否保留在 AMI 中。

关于amazon-web-services - 带有 Packer 的 AWS user_data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45110795/

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