0Pricing
DevOps Bootcamp · レッスン

GitOpsとPull Requestの自動化

Terraform planをPull Requestに自動投稿し、マージ時にapplyを実行するGitOpsワークフローを導入して、レビュアーに完全な可視性を提供します。

「GitOpsとPull Requestの自動化」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全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=tfplan

PRにプランを投稿する

人が読める形式のプランを取得してコメントとして投稿し、レビュー担当者がCIのログを開かなくても済むようにします。

terraform show -no-color tfplan > plan.txt

プランの成果物を保存する

マージ時にレビュー済みの内容とまったく同じものを適用するには、バイナリ形式のプランを成果物としてアップロードし、新しいプランではなくそのプランをapplyします。

- uses: actions/upload-artifact@v4
  with:
    name: tfplan
    path: tfplan

applyワークフロー

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チューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「GitOpsとPull Requestの自動化」で何を学びますか?

Terraform planをPull Requestに自動投稿し、マージ時にapplyを実行するGitOpsワークフローを導入して、レビュアーに完全な可視性を提供します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「GitOpsとPull Requestの自動化」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. CI/CD パイプラインでの Terraform
  2. `plan` と `apply` の自動化
  3. 認証情報の安全な管理
  4. GitOpsとPull Requestの自動化
← DevOps Bootcampに戻る