インフラ構築が楽しくなる!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の組み合わせがいかに強力で、インフラ構築の自動化が楽しいプロセスであるかを実感していただけたら嬉しいです!