使用 Terraform 和极狐GitLab 的基础设施即代码
要使用极狐GitLab 管理您的基础架构,您可以使用与 Terraform 的集成来定义您可以版本、重用和共享的资源:
- 管理计算、存储和网络资源等低级组件。
- 管理高级组件,如 DNS 条目和 SaaS 功能。
- 整合 GitOps 部署和基础设施即代码 (IaC) 工作流程。
- 使用极狐GitLab 作为 Terraform 状态存储。
- 存储和使用 Terraform 模块,来简化常见和复杂的基础架构模式。
Terraform 和 OpenTofu 支持
极狐GitLab 同时集成了 Terraform 和 OpenTofu。大多数功能都是兼容的,包括:
为了简化,极狐GitLab 文档主要参考 Terraform。然而,Terraform 和 OpenTofu 集成之间的差异已经被文档化了。
在流水线中快速启用 OpenTofu 项目
OpenTofu 可以使用 OpenTofu CI/CD 组件集成所有与 Terraform 相关的极狐GitLab 功能。
您可以通过包含组件来为您的流水线添加 validate、plan 和 apply 工作流:
include:
- component: gitlab.com/components/opentofu/validate-plan-apply@<VERSION>
inputs:
version: <VERSION>
opentofu_version: <OPENTOFU_VERSION>
root_dir: terraform/
state_name: production
stages: [validate, build, deploy]
关于组件使用的详细信息并查看所有可用的模板和输入,请查阅 OpenTofu CI/CD 组件的 README。
在流水线中快速启用 Terraform 项目
Terraform CI/CD 模板已经被启用了并将在极狐GitLab 18.0 中移除。更多详情,可以查看弃用声明。
极狐GitLab 和 Terraform 的集成是通过极狐GitLab CI/CD 实现的。您可以使用 include
属性来添加 Terraform 模板到您的项目,然后自定义它。
请选择最适合您的需求的模板:
所有模板:
- 将 极狐GitLab 管理的 Terraform 状态 作为 Terraform 状态存储后端。
- 触发四个流水线阶段:
test
、validate
、build
和deploy
。 - 运行 Terraform 命令:
test
、validate
、plan
和plan-json
。它还运行apply
只在默认分支上。 - 使用 IaC 扫描 检查安全问题。
构建并托管您自己的 Terraform CI/CD 模板
尽管极狐GitLab 不再分发 Terraform CI/CD 模板 和 terraform-images
(包括 terraform
),但您仍然可以在极狐GitLab 流水线中使用 Terraform。
Terraform 模板方案
对极狐GitLab 自定义模板的方案,请参阅自定义 Terraform 模板。