Skip to main content

Ubuntu-22.04

前提条件
  • Windows Terminalをインストール済
  • WSLのverが1.0.0以上
  • ユーザー名は任意の名前でOK(以下ではユーザー名をgomaとしてます)

インストール前の準備

wsl関連のフォルダ作成

info

wsl関連のフォルダ作成済の場合、以下手順は不要です。

wsl関連のフォルダ作成

以下コマンドを実施します。

powershell
New-Item $env:USERPROFILE/winenv/wsl/exe/ubuntu2204 -ItemType Directory; New-Item $env:USERPROFILE/winenv/wsl/ubuntu2204 -ItemType Directory

インストール

Ubuntu-22.04をインストール

tip

wslディストリビューションがインストール済の場合は以下コマンドで事前に削除します。

powershell
wsl --unregister Ubuntu-22.04

インストールコマンドを実施します。

powershell
wsl --install Ubuntu-22.04

インストールコマンド実施後、ユーザー名パスワードを入力します。

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
// highlight-start
Enter new UNIX username: goma # ユーザー名を入力
New password: # パスワードを入力
Retype new password: # パスワードを入力
// highlight-end
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.133.1-microsoft-standard-WSL2 x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

This message is shown once a day. To disable it please create the
/home/goma/.hushlogin file.
appxをダウンロード & 解凍 & Ubuntu起動(wsl --installが上手く行かない場合)

Ubuntu2204-221101.AppxBundleを以下コマンドで$env:USERPROFILE/winenv/wsl/exeにダウンロードします。

powershell
Invoke-WebRequest -Uri https://aka.ms/wslubuntu2204 -OutFile $env:USERPROFILE/winenv/wsl/exe

Ubuntu2204-221101.AppxBundleを以下コマンドで解凍します。

powershell
Expand-Archive -Path $env:USERPROFILE/winenv/wsl/exe/Ubuntu2204-221101.AppxBundle -DestinationPath $env:USERPROFILE/winenv/wsl/exe/Ubuntu2204-221101

Ubuntu_2204.1.7.0_x64.appxを以下コマンドでに解凍します。

powershell
Expand-Archive -Path $env:USERPROFILE/winenv/wsl/exe/Ubuntu2204-221101/Ubuntu_2204.1.7.0_x64.appx -DestinationPath $env:USERPROFILE/winenv/wsl/exe/ubuntu2204

ubuntu.exeを起動します。

powershell
.$env:USERPROFILE\winenv\wsl\exe\ubuntu2204\ubuntu.exe

ubuntu.exeを起動、ユーザー名パスワードを入力します。

wsl.confの設定

以下を実行します。
ユーザーパスワードの入力が必要です

[user] - defaultはリストア後にrootになる問題の対策
[interop] - appendWindowsPathはWSLのコマンド保管が遅い事象の対策
[boot] - systemdはWSLでsystemdを使用するのに必要な設定

USERNAME=`whoami` && cat << EOS | sudo tee /etc/wsl.conf
[user]
default=$USERNAME
[interop]
appendWindowsPath=false
[boot]
systemd=true
EOS

wslディストリビューションを抜けます。

exit

wslディストリビューションを停止します。
(systemdを適用するためにはwslを停止(再起動)する必要があります)

powershell
wsl -t Ubuntu-22.04

ansibleインストール

wslにログインします(ユーザー名はgoma)

powershell
wsl -d Ubuntu-22.04 -u goma --cd ~/

以下を実行します。
ユーザーパスワードの入力が必要です

  • pipをインストール
  • venvをインストール
  • venvを活性化(pipのver23.0からvenv上で実行しないとエラーとなるためです。)
  • ansibleをインストール(併せてdockerpasslibもインストール)
  • ~/.bashrcsource ~/.venv/bin/activateを追記
sudo apt update && \
sudo apt install -y python3-pip && \
sudo apt install -y python3-venv && \
source ~/.profile && \
python3 -m venv ~/.venv && \
source ~/.venv/bin/activate && \
pip install ansible && \
pip install docker && \
pip install passlib && \
echo "source ~/.venv/bin/activate " >> ~/.bashrc

バージョン確認を実施します

ansibleのバージョン確認
ansible-community --version
ansible-coreのバージョン確認
ansible --version

wslディストリビューションを抜けます

exit
エクスポート(ansibleインストール済)

エクスポート前にUbuntu-22.04ディストリビューションが起動している場合は停止させます

powershell
wsl -t Ubuntu-22.04

ansibleをインストール済のwslをエクスポートします

powershell
wsl --export Ubuntu-22.04 $env:USERPROFILE/winenv/wsl/ubuntu2204/ansible_test.tar
インポート(ansibleインストール済)
tip

wslディストリビューション(Ubuntu-22.04)がインストールされている場合は、アンインストールします

powershell
wsl --unregister Ubuntu-22.04

Ubuntu-22.04(ansible_test)をインポートします

powershell
wsl --import Ubuntu-22.04 $env:USERPROFILE/winenv/wsl/ubuntu2204/ $env:USERPROFILE/winenv/wsl/ubuntu2204/ansible_test.tar

playbook実行

Ubuntu-22.04を起動します

powershell
wsl -d Ubuntu-22.04 -u goma --cd ~/

setup-wslenvgit cloneで取得します

git clone https://github.com/gmnk616/setup-wslenv.git && cd ./setup-wslenv/ubuntu2204

プレイブック実行します
ユーザーパスワードの入力が必要です

ansible-playbook -i inventories/hosts.ini -l jammy playbook.yaml --diff --ask-become-pass

プレイブック実行後、setup-wslenvを削除してwslから抜けます

rm -rf ~/setup-wslenv && exit

wsl再起動の為、wslを停止します

powershell
wsl -t Ubuntu-22.04

再度ログインします

powershell
wsl -d Ubuntu-22.04 -u goma --cd ~/

再度ログイン後、wslディストリビューションを抜けます

exit

エクスポート

Ubuntu-22.04をエクスポート

エクスポート前にUbuntu-22.04ディストリビューションが起動している場合は停止させます

powershell
wsl -t Ubuntu-22.04

プレイブック実行済のwslをエクスポートします

powershell
wsl --export Ubuntu-22.04 $env:USERPROFILE/winenv/wsl/ubuntu2204/ubuntu22_04.tar

インポート

Ubuntu-22.04をインポート

tip

wslディストリビューションがインストール済の場合は以下コマンドで事前に削除します。

powershell
wsl --unregister Ubuntu-22.04

Ubuntu-22.04をインポートします

powershell
wsl --import Ubuntu-22.04 $env:USERPROFILE/winenv/wsl/ubuntu2204/ $env:USERPROFILE/winenv/wsl/ubuntu2204/ubuntu22_04.tar

Ubuntu-22.04をデフォルトディストリビューションに設定します

powershell
wsl --set-default Ubuntu-22.04