我的部署工作流程首先使用Packer创建ami,然后使用Terraform进行部署。
我有一个EC2级,它是在2013年之前创建的,因此没有配置默认的VPC。
当我运行packer build packer.json
时,该工具会抱怨
amazon-ebs: Adding tag: "Name": "Packer Builder"
==> amazon-ebs: Error launching source instance: VPCResourceNotSpecified: The specified instance type can only be used in a VPC. A subnet ID or network interface ID is required to carry out the request.
==> amazon-ebs: status code: 400, request id: 35ca5736-f808-4bb9-9a34-3dca24b59259
我打算用Terraform创建VPC。所以问题是,执行的顺序是什么?首先运行Terraform,然后运行Packer。或者以相反的顺序运行?或者,我们拆分了网络配置(VPC),使用Terraform进行一次部署,然后使用Packer,然后对其余服务器进行terraform?
更新: 如果我使用该策略: 运行Network模块(主要是静态的东西),然后是Packer,然后运行“频繁更改东西”模块,我如何在Terraform和Packer之间共享状态?这意味着,一旦我创建了一个新的VPC,我怎么让Packer知道这个新的vpc_id?我是否需要修改每个Packer文件?
答案 0 :(得分:2)
一般建议是将terraform配置拆分为合理大小的部分。
对于小型设置,将其拆分为主要是静态的东西(VPC,子网,路由等)是合理的。 经常更改内容(EC2,SG等)。这也可以解决你的依赖周期。