使用 Terraform 和极狐GitLab 的基础设施即代码
要使用极狐GitLab 管理您的基础架构,您可以使用与 Terraform 的集成来定义您可以版本、重用和共享的资源:
- 管理计算、存储和网络资源等低级组件。
- 管理高级组件,如 DNS 条目和 SaaS 功能。
- 整合 GitOps 部署和基础设施即代码 (IaC) 工作流程。
- 使用极狐GitLab 作为 Terraform 状态存储。
- 存储和使用 Terraform 模块,来简化常见和复杂的基础架构模式。
将您的项目与 Terraform 集成
IaC 扫描引入于 14.6 版本。
与极狐GitLab 和 Terraform 的集成通过极狐GitLab CI/CD 进行。
使用 include
属性将 Terraform 模板添加到您的项目并从那里进行自定义。
要开始使用,请选择最适合您需求的模板:
所有模板:
- 使用极狐GitLab 管理的 Terraform 状态作为 Terraform 状态存储后端。
- 触发四个流水线阶段:
test
、validate
、build
和deploy
。 - 运行 Terraform 命令:
test
、validate
、plan
和plan-json
。它还仅在默认分支上运行apply
。 - 使用 IaC 扫描查找安全问题。
最新的 Terraform 模板
最新模板与最新极狐GitLab 版本兼容。它提供了最新的极狐GitLab 功能,可能包括重大更改。
您可以安全地使用最新的 Terraform 模板:
- 如果您使用 SaaS。
- 如果您使用随每个新极狐GitLab 版本更新的私有化部署实例。
稳定和高级的 Terraform 模板
如果您使用较早版本的极狐GitLab,您可能会遇到极狐GitLab 版本和模板版本之间的不兼容错误。在这种情况下,您可以选择使用以下模板之一:
在每个极狐GitLab 主要版本(例如,15.0)中,最新的模板会替换旧的模板。此过程可能会引入重大更改。如果需要,您可以使用旧版本的模板。
使用 Terraform 模板
使用 Terraform 模板:
- 在顶部栏,选择 主菜单 > 项目 并找到要与 Terraform 集成的项目。
- 在左侧边栏上,选择 仓库 > 文件。
-
编辑
.gitlab-ci.yml
文件,使用include
属性获取 Terraform 模板:include: # To fetch the latest template, use: - template: Terraform.latest.gitlab-ci.yml # To fetch the stable template, use: - template: Terraform/Base.gitlab-ci.yml # To fetch the advanced template, use: - template: Terraform/Base.latest.gitlab-ci.yml
-
按如下所述添加变量:
variables: TF_STATE_NAME: default TF_CACHE_KEY: default # If your terraform files are in a subdirectory, set TF_ROOT accordingly. For example: # TF_ROOT: terraform/production
- 可选。在
.gitlab-ci.yml
文件中覆盖您获取的模板中存在的属性以自定义配置。