☝️
WSLのUbuntuインストール時の設定をcloud-initで行う
最近リリースされたUbuntu 24.04 LTSでは、cloud-initを使用して設定をインストール時などで自動的に行うことができるようになりました。
Ubuntu 24.04 LTS以降、WSLのUbuntuはcloud-initにより、複数の開発環境にわたってイメージのカスタマイズと標準化に対応します。
以下のチュートリアルを参考にしながら、この記事では例としてAPTミラーの設定をインストール時に行うようにします。
環境
PS > wsl --version
WSL バージョン: 2.2.4.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.61
MSRDC バージョン: 1.2.5326
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26091.1-240325-1447.ge-release
Windows バージョン: 10.0.22621.2715
cloud-initの設定ファイルを作成
Ubuntuのインストール時の追加の設定をWindows側の%USERPROFILE%\.cloud-init\Ubuntu-all.user-data
にYAML形式で記述します。
モジュール一覧を見るとApt Configureモジュールでミラーの場所を設定できるので以下のような設定になります。
%USERPROFILE%\.cloud-init\Ubuntu-all.user-data
#cloud-config
apt:
primary:
- arches: [i386, amd64]
uri: http://ftp.udx.icscoe.jp/Linux/ubuntu
security:
- arches: [i386, amd64]
uri: http://security.ubuntu.com/ubuntu
Ubuntu 24.04 LTSをWSLにインストール
通常通りにインストールを行います。
PS > wsl --install Ubuntu-24.04
インストール中: Ubuntu 24.04 LTS
Ubuntu 24.04 LTS がインストールされました。
Ubuntu 24.04 LTS を起動しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: holliy
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
...
holliy@wsl:~$
設定の確認
読み込まれたYAMLの内容は以下のコマンドで確認できます。
$ sudo cloud-init query userdata
#cloud-config
apt:
primary:
- arches: [i386, amd64]
uri: http://ftp.udx.icscoe.jp/Linux/ubuntu
security:
- arches: [i386, amd64]
uri: http://security.ubuntu.com/ubuntu
表示される内容が有効であるかはこの出力からは分からないので、以下のコマンドで確認します。
$ sudo cloud-init schema --system --annotate
Valid schema user-data
Valid ~
と表示されれば、設定は正常に読み込まれています。
参考
Discussion