👻

WSL2上のUbuntuでTerraformを使用するためのセットアップガイド

2024/07/02に公開

はじめに

このガイドでは、WSL2上のUbuntu環境でTerraformを使ってAWSリソースを構築するための準備手順を解説します。この記事は私の備忘録として、また今後学習をする人向けに書かれています。具体的なコマンドと設定方法を示し、必要な背景知識も補足します。

前提条件

以下の条件が既に満たされていることを確認してください:

  • WSL2にUbuntuがインストールされていること
  • AWSアカウントがあり、IAMユーザーとアクセスキーが作成されていること
  • Terraformがインストールされていること

実施すること

  • AWS CLIのインストール
  • direnvのインストール
  • Terraformの初期設定

ステップ 1: AWS CLIのインストール

TerraformがAWSと対話するためには、AWS CLI(コマンドラインインターフェース)が必要です。AWS CLIを使うことで、AWSのサービスをコマンドラインから操作できるようになります。これにより、TerraformがバックエンドでAWSのAPIを使用してリソースを作成、管理するための認証情報を取得することができます。

sudo apt install awscli
  • AWS CLIをインストールします。

ステップ 2: プロジェクトディレクトリの作成

作業用のディレクトリを作成し、管理を簡単にします。

mkdir ~/terraform-project
cd ~/terraform-project
  • mkdir ~/terraform-project`: ホームディレクトリに「terraform-project」という名前のディレクトリを作成します。
  • cd ~/terraform-project`: 作成したディレクトリに移動します。

ステップ 3: direnvのインストール

direnvは、特定のディレクトリに入ると自動的に環境変数を読み込み、ディレクトリを離れるとその環境変数をクリアしてくれるツールです。これにより、プロジェクトごとに異なる環境変数を手軽に管理できるようになります。例えば、複数のAWSアカウントやプロジェクトを扱う場合、各プロジェクトごとに適切な環境変数を設定することで、設定ミスや認証エラーを防ぐことができます。

direnvのインストール

sudo apt install direnv
  • direnvをインストールします。

インストール確認

direnv --version
  • direnvが正しくインストールされたことを確認します。

シェル設定ファイルの更新

direnvをBashシェルで有効にするために、.bashrcファイルにフックを追加します。

echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
source ~/.bashrc
  • echo 'eval "$(direnv hook bash)"' >> ~/.bashrc: direnvのフックを.bashrcファイルの最後に追加します。
  • source ~/.bashrc: 更新した.bashrcファイルを再読み込みし、変更を反映させます。

.envrcファイルの作成

プロジェクトディレクトリに移動し、環境変数を設定するための.envrcファイルを作成します。

echo 'export AWS_ACCESS_KEY_ID=your-access-key-id' > .envrc
echo 'export AWS_SECRET_ACCESS_KEY=your-secret-access-key' >> .envrc
echo 'export AWS_DEFAULT_REGION=ap-northeast-1' >> .envrc
  • echo 'export AWS_ACCESS_KEY_ID=your-access-key-id' > .envrc: AWSアクセスキーIDを設定します。
  • echo 'export AWS_SECRET_ACCESS_KEY=your-secret-access-key' >> .envrc: AWSシークレットアクセスキーを設定します。
  • echo 'export AWS_DEFAULT_REGION=ap-northeast-1' >> .envrc: デフォルトリージョンを設定します。

注意: 実施時に以下のエラーメッセージが表示される場合があります:

direnv: error .envrc is blocked. Run `direnv allow` to approve its content.

このメッセージは、セキュリティ上の理由から.envrcファイルの実行がブロックされていることを示しています。承認して環境変数を有効にする必要があります。

.envrcファイルの承認

承認を行うには、以下のコマンドを実行します:

direnv allow

このコマンドを実行することで、.envrcファイルが有効化され、定義された環境変数がプロジェクトディレクトリ内で自動的に読み込まれるようになります。これにより、プロジェクトごとに異なるAWS認証情報や設定を簡単に切り替えることができます。

.envrcファイルの作成で設定したCredentials情報を確認

env |grep AWS

ステップ 4: Terraformの初期設定

Terraformの初期設定を行うことで、Terraformが使用するプラグインをダウンロードし、プロジェクトの設定を初期化します。これにより、Terraformが正しく動作するための準備が整います。

Terraformの初期化

terraform init

Terraformの初期化を行い、必要なプラグインをダウンロードします。

まとめ

これらの手順に従うことで、WSL2上のUbuntuでTerraformを使用するための環境が整います。次のブログでは、実際にAWSリソースを作成する手順を解説します。詳しい設定や使用方法は、以下の公式ドキュメントも参考にしてください。

Terraform AWS Provider

AWS CLIインストールガイド

Discussion