我们在 Azure 中预配登陆区,主要使用以下内容:
- Terraform 作为我们的 IaC。
- 用于预配所需 Azure 资源的 Azure Pipelines。
由于我们将在多个环境(开发、测试和生产)中进行配置,我们已经确定了一种模块化方法作为我们 Terraform 代码的首选选项。因此,我想要一个非常基本的示例,说明如何为部署在所有三个环境(开发、测试和生产)中的 3 个资源组组合一个 Terraform 模块。
希望我可以采用相同的概念以模块化方式提供其他资源。
我们在 Azure 中预配登陆区,主要使用以下内容:
由于我们将在多个环境(开发、测试和生产)中进行配置,我们已经确定了一种模块化方法作为我们 Terraform 代码的首选选项。因此,我想要一个非常基本的示例,说明如何为部署在所有三个环境(开发、测试和生产)中的 3 个资源组组合一个 Terraform 模块。
希望我可以采用相同的概念以模块化方式提供其他资源。
有很多方法可以做到这一点。如果您使用 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 行,我们就可以将其拆分。