对于非默认VPC的Packer和Terraform之间的循环依赖性



我的部署工作流程首先使用Packer创建AMI,然后使用Terraform部署。

我有一个在2013年之前创建的EC2级,因此没有配置默认的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?

更新:如果我使用该策略:运行网络模块(主要是静态事物(,然后是Packer,然后运行"经常更改"模块,我如何在Terraform和Packer之间共享状态?意思是,一旦我创建了一个新的VPC,我如何让Packer知道这个新的VPC_ID?我需要修改每个包装器文件吗?

一般建议是将Terraform配置分为合理的零件。

对于一个小设置,合理的是将其分为主要是静态事物(VPC,子网,路由等(。经常更改事物(EC2,SG等(。这也将解决您的依赖周期。

最新更新