使用 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 功能。

您可以通过包含组件来为您的流水线添加 validateplanapply 工作流:

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 项目

caution Terraform CI/CD 模板已经被启用了并将在极狐GitLab 18.0 中移除。更多详情,可以查看弃用声明

极狐GitLab 和 Terraform 的集成是通过极狐GitLab CI/CD 实现的。您可以使用 include 属性来添加 Terraform 模板到您的项目,然后自定义它。

请选择最适合您的需求的模板:

所有模板:

  • 极狐GitLab 管理的 Terraform 状态 作为 Terraform 状态存储后端。
  • 触发四个流水线阶段:testvalidatebuilddeploy
  • 运行 Terraform 命令:testvalidateplanplan-json。它还运行 apply 只在默认分支上。
  • 使用 IaC 扫描 检查安全问题。

构建并托管您自己的 Terraform CI/CD 模板

尽管极狐GitLab 不再分发 Terraform CI/CD 模板 和 terraform-images (包括 terraform),但您仍然可以在极狐GitLab 流水线中使用 Terraform。

Terraform 模板方案

对极狐GitLab 自定义模板的方案,请参阅自定义 Terraform 模板