我目前在组织内使用多个AWS账户。我有多个承担角色的提供程序设置。
是否有一种方法可以让资源遍历所有提供程序,以确保安装了我在Terraform模块中定义的所有内容?我试图避免每个提供程序都有一个资源,而只有一个资源可以使用每个提供程序。
希望有人可以提供帮助或有这样的用例。
TIA
答案 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