Packer:从正在运行的EC2实例生成AMI

时间:2013-11-19 01:12:00

标签: amazon-web-services amazon-ec2 amazon ami packer

我想使用Packers从正在运行的EC2实例创建AMI(亚马逊机器映像)。

这是我的用例:
1)使用打包器生成基本AMI并启动EC2实例
2)在EC2实例上进行用户数据配置..(此处需要人为干预)
3)使用Packer
从步骤#2生成应用程序特定的AMI
我不想使用包装工提供的“供应商”。我需要在步骤#2进行人为干预

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结束。