我想使用Packers从正在运行的EC2实例创建AMI(亚马逊机器映像)。
这是我的用例:
1)使用打包器生成基本AMI并启动EC2实例
2)在EC2实例上进行用户数据配置..(此处需要人为干预)
3)使用Packer
从步骤#2生成应用程序特定的AMI
我不想使用包装工提供的“供应商”。我需要在步骤#2进行人为干预
答案 0 :(得分:1)
Packer的观点似乎是消除构建过程中的人为干预,以使部署保持一致。但是,每个实例数据可以通过Packer user variables传递,可以在命令行上传递:
$ packer build \
-var 'aws_access_key=foo' \
-var 'aws_secret_key=bar' \
template.json
或通过配置文件:
$ packer build -var-file=variables.json template.json
答案 1 :(得分:0)
我同意ec2-create-image方法。一旦您的打包者构建完成 - 您将需要第二个打包器构建来完成此任务。例如,你可以用Atlas进行一次webhook踢。
您是否考虑过在本地进行修改(在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结束。