以前、Windows環境の初期設定を自動化する自作ツールについてご紹介しました。
- 以前の記事: Windows 11 セットアップを自動化する「Win-Cmd-Toolbox」
- GitHub: raikiri-jp/win-cmd-toolbox
- ZIP: 直接ダウンロード
今回はそのアップデートとして、WSL2 上に Amazon Linux 2023 (AL2023) をサクッと構築するための PowerShell スクリプトを追加しました。
AWS環境での開発がメインの方は「ローカルも Amazon Linux で合わせたい」と思うことが多いはず。
でも、WSL の標準配布(wsl --list --online)には Amazon Linux が含まれておらず、手動で tar を拾ってきてインポートするのは意外と面倒です。
そこで、今回作成した .ps1 スクリプトを実行するだけで、以下の工程を全自動化できるようにしました。
- AWS 公式サイトから AL2023 の最新イメージを自動取得・ダウンロード
- 指定したドライブ・フォルダへ WSL2 としてインポート
- systemd の有効化
- Docker Engine および Docker Compose のインストール
なぜ Amazon Linux 2023 なのか?
最近は AWS EC2 上で Docker を使って開発作業をしています。
AWS EC2 のデフォルト環境は Amazon Linux です。
プライベートで開発や学習をする場合は全く別の環境でも良いですが、できるだけ職場と合わせた方が双方の経験が役に立ちます。しかし個人で AWS EC2 で開発するのはハードルが高いと思います。
そこで WSL2 で AL2023 を動かします。
Ubuntu でも Docker コンテナを AL2023 イメージにすれば差異は吸収できますが、WSL2 自体も AL2023 にしておくことで、dnf コマンドや設定ファイルの場所など、EC2 と完全に同じ操作感で作業できます。
スクリプトの使い方
ダウンロード
GitHubリポジトリから ZIPファイルをダウンロードするか、 git clone で取得してください
- ZIP: 直接ダウンロード
ZIP を展開して「ターミナル (管理者)」を開き、ZIPを展開したフォルダで以下のコマンドを実行します。
cd wsl
WSL2 をインストールしていない場合は、以下のコマンドを実行します。
.\install-wsl-no-distribution.ps1
WSL2 がインストールされている状態で以下のコマンドを実行します。
.\install-wsl-al2023.ps1 -WslHome C:\wsl
-WslHome に WSL2 関連ファイルの保存先を指定します。C ドライブの空きが少ない場合は D ドライブなどを指定してください。
ディストリビューション名を変えたい場合は -DistroName で指定できます(省略時は AL2023)。
.\install-wsl-al2023.ps1 -WslHome D:\wsl\ -DistroName MyAL2023
あとはスクリプトが全部やってくれます。完了したら以下で起動できます。
wsl -d AL2023
ハマりどころとい解決策
スクリプト作成中にいくつかハマった点を共有します。同じ構成を手動で作ろうとしている方の参考になれば。
AL2023 はコンテナイメージベースなので最小構成
wsl --list --online に AL2023 はないため、AWS が配布しているコンテナイメージを wsl --import で取り込む方法を使います。ただしコンテナイメージは必要最小限の構成なので、mount コマンドすら入っていません。systemd・iptables・libseccomp なども別途インストールが必要です。
Docker 公式リポジトリの $releasever 問題
AL2023用のDocker公式リポジトリはありませんので、Red Hat Enterprise Linux (RHEL) のリポジトリを使います。しかし AL2023 の $releasever は 2023.x.xxxxxxxx という独自フォーマットになっており、Docker 公式リポジトリの URL が 404 になります。リポジトリファイルの $releasever を 9(RHEL9 相当)に固定することで解決しました。
sed -i 's/\$releasever/9/g' /etc/yum.repos.d/docker-ce.repo
まとめ&リンク
WSL2 に AL2023 を入れる作業は、やってみると意外とハマりどころが多いです。
このスクリプトで一撃で終わらせてください。
- GitHubリポジトリ:https://github.com/raikiri-jp/win-cmd-toolbox
- ZIPダウンロード:win-cmd-toolbox.zip

コメント