Others

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
Bash

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

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

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

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

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

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

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

tenv version
Bash

terraformのインストール

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

tenv tf install
Bash

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

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

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

tenv tf list
Bash

タブ補完の有効化

初期状態ではterraform、tenvともに補完が効かない状態なのでタブ補完できるようにしましょう。
また、大文字小文字を区別せず補完できるようにもしておきます。

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

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

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

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

続いてtenvの設定です。

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

最後に大文字小文字を無視した補完を有効にします。

echo 'bind "set completion-ignore-case on"' >> ~/.bashrc
Bash

これらのコマンドを実行したらシェルを開きなおすか、以下のコマンドを実行して設定を反映します。

source ~/.bashrc && source /etc/bash_completion
Bash

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

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

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

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

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

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

VSCodeでの準備

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

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

  • WSL

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

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

  • HashiCorp Terraform
  • gitignore

おわりに

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

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

ABOUT ME
海洋
海洋
NWエンジニア
ネットワーク・セキュリティを中心に、業務や検証環境で実際に触れた内容を記録しています。
現職ではネットワークの運用・構築を担当。

保有資格
ネットワーク:ネットワークスペシャリスト / CCNA
セキュリティ:情報セキュリティマネジメント / ISC2 CC
クラウド  :AZ-104 / AZ-305
その他   :応用情報技術者 / LinuC レベル1

記事URLをコピーしました