【发布时间】:2017-04-21 19:25:48
【问题描述】:
我有一个包含 java 和 tomcat (ami-c1f3e7a6) 的基础 AMI。我的应用程序堆栈包含 6 个基于我的基本 AMI 的独立 Java 应用程序,我正在使用打包程序创建 6 个独立的 AMI。 ansible playbook app_playbook.yml将war文件从S3直接下载到tomcat/webapps目录。我的打包器 JSON 是:
{
"variables": {
"war_file": ""
},
"builders": [{
"type": "amazon-ebs",
"region": "eu-west-1",
"source_ami": "ami-c1f3e7a6",
"instance_type": "t2.small",
"ssh_username": "ec2-user",
"ami_name": "app-{{user `war_file`}}-{{timestamp}}"
}],
"provisioners": [{
"type": "ansible",
"playbook_file": "ansible/app_playbook.yml",
"extra_arguments": "--extra-vars 'war_file={{user `war_file`}}'"
}]
}
在我正在做的命令行:
packer build -var 'war_file=release123/application_1.war' tomcat.json
packer build -var 'war_file=release123/application_2.war' tomcat.json
packer build -var 'war_file=release123/application_3.war' tomcat.json
packer build -var 'war_file=release123/application_4.war' tomcat.json
packer build -var 'war_file=release123/application_5.war' tomcat.json
packer build -var 'war_file=release123/application_6.war' tomcat.json
我一直在研究打包程序执行并行构建以加快构建过程的能力,但看起来配置器是针对每个构建器运行的,我需要将特定变量传递给每个构建器。
我知道我可以分叉 bash 命令来并行执行构建,但我觉得必须有一种“打包器”方式来执行此操作。有什么想法吗?
【问题讨论】:
标签: packer