GitOpsとPull Requestの自動化
Terraform planをPull Requestに自動投稿し、マージ時にapplyを実行するGitOpsワークフローを導入して、レビュアーに完全な可視性を提供します。
「GitOpsとPull Requestの自動化」はCoddyKit上の無料Terraform Infrastructure as Codeレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTerraform Infrastructure as Code学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Terraform Infrastructure as Codeコースには全4レッスンが含まれています。
GitOpsとは
GitOpsでは、インフラの信頼できる唯一の情報源としてGitを使います。すべての変更はプルリクエストで行い、mainブランチへのマージがapplyを実行するきっかけになります。コンソール上で手動変更することはありません。
プルリクエストでplanを実行する
基本的な考え方は、PRが作成されたらCIでterraform planを実行し、結果をコメントとして投稿することです。レビュー担当者は、承認する前に何が変更されるかを正確に確認できます。
マージでapplyを実行する
PRがmainにマージされると、別のワークフローが保存済みのプランを使ってterraform applyを実行します。Gitの履歴が、インフラに対するすべての変更の監査ログになります。
GitHub Actionsのplanジョブ
このワークフローはプルリクエストをトリガーとして実行され、プランの成果物を生成します。
on:
pull_request:
branches: [main]
jobs:
plan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3
- run: terraform init
- run: terraform plan -out=tfplanPRにプランを投稿する
人が読める形式のプランを取得してコメントとして投稿し、レビュー担当者がCIのログを開かなくても済むようにします。
terraform show -no-color tfplan > plan.txtプランの成果物を保存する
マージ時にレビュー済みの内容とまったく同じものを適用するには、バイナリ形式のプランを成果物としてアップロードし、新しいプランではなくそのプランをapplyします。
- uses: actions/upload-artifact@v4
with:
name: tfplan
path: tfplanapplyワークフロー
mainへのpushをきっかけに、承認済みのプランをダウンロードして、確認なしで適用します。
on:
push:
branches: [main]
jobs:
apply:
runs-on: ubuntu-latest
steps:
- run: terraform apply -auto-approve tfplanスケジュールによるドリフト検出
毎晩planを実行してドリフト(コードと異なる手動変更)を検出します。スケジュール実行のplanで変更が示されたら、チームに通知します。
on:
schedule:
- cron: "0 2 * * *"環境の昇格
GitOpsでは、ブランチやディレクトリを使って同じコードを複数の環境へ昇格させます。変更をdevにマージして検証し、その後、別のPRでprodへ昇格させます。
envs/
dev/main.tf
staging/main.tf
prod/main.tf必須レビューとブランチ保護
承認済みのレビューとplanの成功なしにはapplyできないよう、mainを保護します。ブランチ保護ルールによって、プラットフォームレベルでこれを強制できます。
AtlantisとマネージドGitOps
AtlantisやTerraform CloudのVCS統合などのツールは、PR内のコメントから直接atlantis applyを実行する機能も含め、この一連の流れ全体を自動化します。
確認テスト
GitOpsの理解度を確認しましょう。
まとめ: 信頼できる唯一の情報源としてのGit
GitOpsパイプラインを構築しました。
- レビュー用のplanをPRに投稿する。
- マージ時に保存済みの承認済みプランを適用する。
- スケジュール実行のplanでドリフトを検出する。
- ブランチ保護とAtlantisなどのツールでフローを強制する。
よくある質問
「GitOpsとPull Requestの自動化」レッスンは無料ですか?
はい。「GitOpsとPull Requestの自動化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Terraform Infrastructure as Codeコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Terraform Infrastructure as Codeコースには全4レッスンが含まれています。
「GitOpsとPull Requestの自動化」で何を学びますか?
Terraform planをPull Requestに自動投稿し、マージ時にapplyを実行するGitOpsワークフローを導入して、レビュアーに完全な可視性を提供します。 ブラウザで直接実行するハンズオンコードでTerraform Infrastructure as Codeを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Terraform Infrastructure as Codeを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのTerraform Infrastructure as Codeは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「GitOpsとPull Requestの自動化」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このTerraform Infrastructure as Codeレッスンでコードを書いて実行できますか?
はい。すべてのTerraform Infrastructure as Codeレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- CI/CD パイプラインでの Terraform
- `plan` と `apply` の自動化
- 認証情報の安全な管理
- GitOpsとPull Requestの自動化