インフラ構築が楽しくなる!TerraformとGitHub Actionsで構築するCICD

こんにちは、みなさん!
今回は、TerraformとGithub Actionsを使って、簡単なCICDパイプラインを構築するハンズオンを行います。
一緒に実際に構築を体験しましょう!

*本記事に記載のコマンドを実行するにあたって生じた不具合等については、筆者は責任を負いません。

準備するもの

  • Githubアカウント
  • Docker
  • Terraform

手順

ステップ1: Terraform TutorialでDockerを立てる

まずは、Terraformを使ってインフラのコードを書きましょう。
以下は、TerraformチュートリアルでDockerコンテナを作成する簡単な例です。
AWSなどのクラウドプロバイダを利用するとアクセスキーの設定などが必要になるため、今回は簡単に体験ができるリソースにしました。

Install Terraform | Terraform | HashiCorp Developer

nginxが無事立ち上がりました。

ステップ2: GitHubリポジトリを作成しよう

次に、GitHub上に新しいリポジトリを作成し、先ほど書いたTerraformのコードをプッシュします。

ステップ3: GitHub Actionsのワークフローを定義しよう

リポジトリのルートに、.github/workflows/terraform.ymlというファイルを作成し、以下のようなワークフローを定義します。

name: Terraform

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  terraform:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4.1.7

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3.1.1

    - name: Terraform Init
      run: terraform init

    - name: Terraform Plan
      run: terraform plan

    - name: Terraform Apply
      run: terraform apply -auto-approve

    - name: Terraform Destroy
      run: terraform apply -destroy -auto-approve

HashiCorp - Setup Terraform - GitHub Marketplace

ステップ4: コードをプッシュして、自動化を体験しよう!

定義したワークフローをリポジトリにプッシュすると、GitHub Actionsが自動的にトリガーされ、Terraformの初期化、計画、適用が実行されます。

自動化の楽しさを体験しよう!

コードをプッシュするたびに、インフラの検証とデプロイが自動的に行われる様子を見ていると、「つくるって、楽しい!」という気持ちが湧き上がってくるはずです。
このハンズオンを通じて、TerraformとGitHub Actionsの組み合わせがいかに強力で、インフラ構築の自動化が楽しいプロセスであるかを実感していただけたら嬉しいです!