我想使用 Packers 从正在运行的 EC2 实例创建一个 AMI(亚马逊系统映像)。
这是我的用例:
1) 使用 packer 生成基本 AMI 并启动 EC2 实例
2) 在 EC2 实例上配置用户数据.. (此处需要人工干预)
3) 使用 Packer 从步骤#2 生成应用程序特定的 AMI
我不想使用打包程序提供的“供应商”。我需要在第 2 步进行人工干预
我想使用 Packers 从正在运行的 EC2 实例创建一个 AMI(亚马逊系统映像)。
这是我的用例:
1) 使用 packer 生成基本 AMI 并启动 EC2 实例
2) 在 EC2 实例上配置用户数据.. (此处需要人工干预)
3) 使用 Packer 从步骤#2 生成应用程序特定的 AMI
我不想使用打包程序提供的“供应商”。我需要在第 2 步进行人工干预
Packer 的重点似乎是消除构建过程中的人为干预,以使部署保持一致。但是,每个实例的数据可以通过 Packer用户变量传入,可以在命令行上传递:
$ packer build \
-var 'aws_access_key=foo' \
-var 'aws_secret_key=bar' \
template.json
或通过配置文件:
$ packer build -var-file=variables.json template.json
我同意 ec2-create-image 方法。一旦您的打包程序构建完成 - 您将需要第二个打包程序构建来完成此操作。你可以用一个 webhook 来启动它,比如说,使用 Atlas。
您是否考虑过在本地(在 VMWare 中)进行修改,然后安装 ec2 工具并使用 ec2-convert?类似于以下内容?
aws ec2 import-image --cli-input-json '{ "Platform": "Linux",
"Architecture": "x86_64", "Description": "Some Centos AMI v21.2.1",
"DiskContainers": [{ "Description": "Some_App", "UserBucket": {
"S3Bucket": "centos-builds", "S3Key": "some-build-ami.ova"}}]}'
这将以 AMI 结束。