我正在为我的生产基础结构构建一个平台。我的模块目录结构如下
main.tf
variable.tf
terraform.tfvars
|----->AKS/main.tf
|----->Mysql/main.tf
|----->Kafka/main.tf
我在设计上述结构的状态文件时遇到了问题。在构建AKS时,我们必须手动运行/脚本来创建状态文件(“此后,我们将无法使用Terraform自身创建此存储帐户和blob容器)。
有什么方法可以在部署完整的堆栈时在所有模块级别定义状态文件,而无需在子模块中运行以下命令。
az storage container create --name terraform-state --account-name mytf --account-key xxxxx
答案 0 :(得分:0)
为每个状态文件创建存储容器不是正确的选择。
我能想到的两种解决方案:
在执行terraform init时,动态传递后端密钥,如下所示,这样您就可以通过特定名称创建状态文件。
terrain初始化backend-config = backend.tfvars backend-config =“ key = $ {AKS | Mysql | Kafka | any-variable}。{any-variable} .tfstate”