【问题标题】:maintaining state file for multiple terraform module维护多个 terraform 模块的状态文件
【发布时间】:2019-11-10 07:51:25
【问题描述】:

我正在为我的生产基础架构构建一个 terraform。我的模块目录结构如下 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

【问题讨论】:

标签: terraform azure-aks


【解决方案1】:

为每个状态文件创建存储容器并不是正确的做法。

我能想到的两个解决方案:

  • 用户terraform workspace -h:这是一种合乎逻辑的组织方式。
  • 在执行 terraform init 时动态传递后端密钥,如下所示,通过这种方式,您可以按特定名称创建状态文件。

    terraform init backend-config=backend.tfvars backend-config="key=${AKS|Mysql|Kafka|any-variable}.{any-variable}.tfstate"

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 2011-06-16
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 2017-01-24
    • 2021-02-24
    相关资源
    最近更新 更多