正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

OpenTofuとGitLabを使用したInfrastructure as Code

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLabでインフラストラクチャを管理するには、OpenTofuとのインテグレーションを使用して、バージョン管理、再利用、共有が可能なリソースを定義できます:

  • コンピューティング、ストレージ、ネットワーキングリソースなどの低レベルのコンポーネントを管理します。
  • DNSエントリやSaaSの機能などの高レベルのコンポーネントを管理します。
  • GitLabをOpenTofuステートストレージとして使用します。
  • OpenTofuモジュールを保存して使用し、一般的かつ複雑なインフラストラクチャパターンを簡素化します。
  • GitOpsデプロイとInfrastructure as Code(IaC)のワークフローを組み込みます。

GitLabがOpenTofuとのインテグレーションで提供する機能の動画の概要をご覧ください。

以下の例では、主にOpenTofuを使用していますが、Terraformでも動作します。

TerraformとOpenTofuのサポート

GitLabは、TerraformとOpenTofuの両方と統合できます。ほとんどの機能は完全に互換性があり、以下が含まれます:

簡略化のため、GitLabドキュメントでは主にOpenTofuについて説明します。ただし、TerraformとOpenTofuのインテグレーションの違いについては、ドキュメントに記載されています。

パイプラインでOpenTofuプロジェクトをクイックスタート

OpenTofuは、GitLab OpenTofu CI/CDコンポーネントを使用して、Terraform固有のすべてのGitLab機能と統合できます。

コンポーネントを含めることで、検証プラン適用ワークフローをパイプラインに追加できます:

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コンポーネントの使用方法の詳細については、OpenTofu CI/CDコンポーネントのREADMEを参照してください。

独自のTerraform CI/CDテンプレートをビルドしてホストする

GitLabはTerraform CI/CDテンプレートとterraform-imagesterraformなど、基盤となるジョブイメージ)を配布しなくなりましたが、GitLabパイプラインでTerraformを引き続き使用できます。

独自のテンプレートとイメージをビルドしてホストする方法については、Terraform Imagesプロジェクトを参照してください。