Terraform-在多个帐户中部署

时间:2018-11-01 13:46:13

标签: terraform

我目前在组织内使用多个AWS账户。我有多个承担角色的提供程序设置。

是否有一种方法可以让资源遍历所有提供程序,以确保安装了我在Terraform模块中定义的所有内容?我试图避免每个提供程序都有一个资源,而只有一个资源可以使用每个提供程序。

希望有人可以提供帮助或有这样的用例。

TIA

1 个答案:

答案 0 :(得分:3)

否,不可能只有一个资源块使用多个提供程序。最好的方法是为组织中的不同帐户使用不同的文件夹。每个文件夹的main.tf都具有相同的资源块(如您的情况),并且具有不同的provider.tf。在您的主机内部,您可以调用所需的模块。

对于您而言,这似乎是很多冗余代码,但这是最佳选择。请参考下面的项目结构以了解想法。

|   Project Directory
|   
+---dev
|   |   main.tf
|   |   param.tfvars
|   |   provider.tf
|   |   terraform.tfstate
|   |   terraform.tfstate.backup
|   |   variables.tf
|   |   
+---modules
|   +---internetgateway
|   |       main.tf
|   |       outputs.tf
|   |       variables.tf
|   |       
|   +---nat
|   |       main.tf
|   |       outputs.tf
|   |       variables.tf
|   |       
+---prod
|   |   main.tf
|   |   param.tfvars
|   |   provider.tf
|   |   terraform.tfstate
|   |   terraform.tfstate.backup
|   |   variables.tf
|   |
+---test
|   |   main.tf
|   |   param.tfvars
|   |   provider.tf
|   |   terraform.tfstate
|   |   terraform.tfstate.backup
|   |   variables.tf