WSLでTerraformを使えるようにしたい

メソ
2024-04-24
2024-04-24

AWSのインスタンス作成にあたり、IaCであればインスタンス情報を文字として一覧で見られるようになるため、ちょっとした作成や情報管理には楽でよさげだなと思いました。

今回はWindowsベースでも手軽にLinux環境を手に入れられそうなWSLに、Terraformの環境を構築していきます。

WSLのインストール

事前準備

WSLでは、Windows上でLinuxディストリビューションを利用することができます。
まずWindowsでWSLを利用できるように設定を行います。

コントロールパネル>プログラム>Windows機能の有効化または無効化 
から、下記の項目にチェックを入れます。

  • Linux用Windowsサブシステム
  • 仮想マシンプラットフォーム

設定を有効化するための再起動のポップアップが表示されますので、再起動を行い、コマンドプロンプトを開きます。
※PowerShellでも同様に実行可能ですが、今回はコマンドプロンプトを利用します。

WSLのインストール

では、WSLをインストールしていきます。
WSLがインストール済みでないか、念のためチェックしておきます。

#インストール状況の確認
> wsl --status
既定のディストリビューション: Ubuntu
既定のバージョン: 2

上記のようにディストリビューションやバージョン情報が表示されれば、すでにインストールされていることになります。表示されなければインストールを行います。

#インストール
> wsl --install

インストールが完了したら、下記のコマンドで確認します。

#バージョン確認
> wsl --version

バージョン情報が表示されていればインストール成功です。

AlmaLinuxのインストール※コマンドプロンプトとAlmaLiuxのターミナルを行き来します

今回はUbuntsではなくAlmaLinuxの利用を考えているため、Microsoft Storeで「AlmaLinux」と検索します。
「AlmaLinux 8 WSL」を選択し、「入手」をクリックします。インストールが完了するとStore上に「開く」が表示されるため、クリックします。

AlmaLinuxの画面が開かれるとUserとPasswordの設定が表示されます。Windowsターミナルを利用していればタブに🐧が表示されている方がAlmaLinuxになります。

コマンドプロンプトで以下を実行すると、WSLが利用しているディストリビューションが表示されます。

> wsl --list
Linux 用 Windows サブシステム ディストリビューション:
AlmaLinux-8 (既定)
Ubuntu

このように、既定として指定されたディストリビューションが利用されます。

セットアップ

続いて、AlmaLinux🐧でこれからソフトウェアのインストールを行うためのセットアップを行います。

まず、ネットワークの設定をしていきます。wsl.confでresolv.confが生成されないよう、以下のようにwsl.confを作成します。

$ sudo vi /etc/wsl.conf
[network]
generateResolvConf = false

コマンドプロンプトに戻り、WSLを再起動します。

> wsl -t AlmaLinux-8

再びAlmaLinux🐧の方に戻り、resolv.confのネームサーバを指定します。

$ sudo vi /etc/resolv.conf
nameserver 8.8.8.8

ネームサーバが指定できれば、DevelopmentToolsをインストールします。

$ sudo dnf groupinstall "Development Tools"

HomeBrewのインストール※ここからは先ほどインストールしたAlmaLinux上での操作になります。

今回はパッケージ管理システムのHomeBrewからTerraformをインストールしていきます。

Gitのインストール

まず、HomeBrewをインストールするため、事前にGitをインストールしておきます。

$ sudo dnf -y install git
HomeBrewのインストール

下記のコマンドを入力しHomeBrewをインストールします。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

無事にインストールが完了すれば、パスを通すよう案内されますので、案内通りに実行します。

$ (echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /home/user/.bashrc
$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

Terraformのインストール

ではようやく、Terraformのインストールを行います。

$ brew install hashicorp/tap/terraform

インストールが成功しているか確認します。
下記のコマンドでバージョンが表示されればインストール完了です!

$ terraform -v

まとめ

実際構築の際はDevelopment Toolsのインストールやnameserverの設定で少々躓きましたが、無事に構築することが出来ました。
上記の設定項目ですとユーザーログインの状態ですので、ここからSSHの設定をしたり、コードエディタとの接続設定をするとより実践に近づくかと思います。