IT

WSLではじめるTerraform

海洋
利用環境

Windows11 Pro
WSL Ubuntu 22.04

この記事ではTerraforを使えるようにするための準備について紹介しています。

WSLを使用していますが、WSL自体のセットアップには触れていませんのでご了承ください。

また、ubuntu20.04などのサポートが切れているディストリビューションではTerraformがインストールできないようなので気を付けて下さい。

tenvのインストール

terraformは直接インストールせず、まずはバージョン管理ができるtenvをインストールします。その後、tenvを使用してterraformをインストールします。

tenvのインストールは以下の手順で行います。

後に使用するURL取得コマンドでjqが必要なため事前にインストールします。

sudo apt update && sudo apt install -y jq

最新バージョンのtenvのDibianパッケージURLを取得します。

TENVDebURL=$(curl -s https://api.github.com/repos/tofuutils/tenv/releases/latest \
  | jq -r '.assets[] | select(.name | test("amd64\\.deb$")) | .browser_download_url')

取得したURLから.debをダウンロードします。

curl -L -o /tmp/tenv_latest_amd64.deb "$TENVDebURL"

ダウンロードした.debをインストールします。

sudo dpkg -i /tmp/tenv_latest_amd64.deb || sudo apt -f install -y

最後にバージョンを確認するコマンドを入力し、バージョンが表示されればインストールは完了です。

tenv version

terraformのインストール

tenvを使用してterraformをインストールします。
特に決まったバージョンがなければ現行の最新安定バージョンをインストールするのが良いと思います。

tenv tf install

インストールしたterraformバージョンを使用する設定を行います。

tenv tf use 【バージョン(例 1.13.0)】

設定がうまくいっているか確認します。以下コマンドの結果、指定したバージョンの左に「*」が表示されていればOKです。

tenv tf list

タブ補完の有効化

初期状態ではterraform、tenvともに補完が効かない状態なのでタブ補完できるようにしましょう。

まずはbash_completionのインストールとディレクトリの作成です。

sudo apt install -y bash-completion && \
sudo mkdir -p /etc/bash_completion.d

Terraformコマンドのタブ補完の設定を行います。

echo 'complete -C terraform terraform' | sudo tee /etc/bash_completion.d/terraform >/dev/null

続いてtenvの設定です。

tenv completion bash | sudo tee /etc/bash_completion.d/tenv > /dev/null

プロバイダー実行ファイルを共有する

terraformは初期化コマンドを実行した際ディレクトリに.terraformディレクトリを作成します。
このフォルダ内に作成されるプロバイダー実行ファイルがなかなかの容量なので、すべてのプロジェクトで共有できるよう事前に設定していきます。

まず共有キャッシュ用ディレクトリを作成します。

mkdir -p "$HOME/.terraform.d/plugin-cache" && \
chmod 700 "$HOME/.terraform.d" "$HOME/.terraform.d/plugin-cache"

terraformのCLI設定ファイルを作成し共有キャッシュを使用するよう記述していきます。

cat > "$HOME/.terraformrc" <<'EOF'
# 共有キャッシュを使用
plugin_cache_dir   = "$HOME/.terraform.d/plugin-cache"
EOF

VSCodeでの準備

tfファイルの編集にはVSCodeを使用します。

まず以下の拡張機能をインストールしましょう。

  • WSL

続いてctrl + shift + pでコマンドパレットを開き「wsl」と入力します。
「ディストリビューションを使用してWSLに接続」をクリックし、ディストリビューションを選択すれば接続できます。

接続出来たら必須ではありませんが、以下2つの拡張機能を追加でインストールしておくと良いです。

  • HashiCorp Terraform
  • gitignore

おわりに

業務などではtfstateファイルはクラウドに置くなど追加の作業もありますが、個人の学習用途ではとりあえずここまですれば十分かと思います。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
海洋
海洋
Linuxやネットワーク・セキュリティに興味あり。
勉強中の内容も掲載しておりますので、間違いも有るかと思います。
その点をご理解いただき、お気づきのさいはご連絡いただけると幸いです。
記事URLをコピーしました