0

我们在 Azure 中预配登陆区,主要使用以下内容:

  1. Terraform 作为我们的 IaC。
  2. 用于预配所需 Azure 资源的 Azure Pipelines。

由于我们将在多个环境(开发、测试和生产)中进行配置,我们已经确定了一种模块化方法作为我们 Terraform 代码的首选选项。因此,我想要一个非常基本的示例,说明如何为部署在所有三个环境(开发、测试和生产)中的 3 个资源组组合一个 Terraform 模块。

希望我可以采用相同的概念以模块化方式提供其他资源。

4

1 回答 1

0

有很多方法可以做到这一点。如果您使用 Terraform 的云后端进行状态管理,我建议您查看Terraform Workspaces

或者,我们在这里使用带有内部模块的多个环境。我们实现它的方式:

/
README.md
main.tf
variables.tf
environments/
../dev/
....terraform.tfvars

这允许您拥有 X 数量的变量,并且使用 CI,您只需指向每个环境文件的这些不同变量,即可通过指定这些文件来分离事物。我们使用 Gitlab CI/CD 和 Gitlab 的后端进行状态:

build:
  stage: build
  interruptible: true
  script:
    - gitlab-terraform plan -var-file=$TFVARS_DIR/terraform.tfvars
    - gitlab-terraform plan-json

main.tf将包含模块,或者一旦超过 100 行,我们就可以将其拆分。

于 2021-06-29T14:29:16.110 回答