背景
お仕事でWSLを利用する機会があったのでGitLabをインストールしてみた。ので、その備忘録として記録!
手順
1.WSLにUbuntuをインストール
まずは以下のコマンドを実行する。Microsoft StoreにあるUbuntuがインストールされる。(WSL環境未使用状態だと仮想環境のOnとかまでしてくれるんだってさ。つまり便利なコマンド。)
>wsl --install -d Ubuntu
ダウンロード中: Ubuntu
インストール中: Ubuntu
Ubuntu はインストールされました。
Ubuntu を起動しています...
>
で、それが完了するとUbuntuウィンドウが開く。で、Ubuntuで作成するユーザ名を入力するよう言われるので入力。ここではユーザ名をtmpとしている。
Enter new UNIX username: tmp
New password:
Retype new password:
これで早速WSL環境が使えるようになった!
2.Systemd有効化
なんだ?UbuntuってSystemdだろ!有効化って!?と思う人向けに以下を参照してほしい。
dotnet-runtime-5.0をインストール
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-5.0
残りの依存モジュールをインストールする
sudo apt install -y daemonize dbus gawk libc6 libstdc++6 policykit-1 systemd systemd-container
wsl-transdebianのリポジトリ設定
sudo apt install apt-transport-https
sudo wget -O /etc/apt/trusted.gpg.d/wsl-transdebian.gpg https://arkane-systems.github.io/wsl-transdebian/apt/wsl-transdebian.gpg
sudo chmod a+r /etc/apt/trusted.gpg.d/wsl-transdebian.gpg
cat << EOF | sudo tee /etc/apt/sources.list.d/wsl-transdebian.list
deb https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
deb-src https://arkane-systems.github.io/wsl-transdebian/apt/ $(lsb_release -cs) main
EOF
sudo apt update
genieインストール
sudo apt install -y systemd-genie
ルートパーティションがマウントされているデバイスにラベルを付け
最初のコマンドのMounted Onに”/”とだけある行のFilesystemを、次のコマンドの”ファイルシステム”のところに書く。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 251G 1.3G 237G 1% /
tmpfs 2.0G 0 2.0G 0% /mnt/wsl
tools 466G 172G 294G 37% /init
none 2.0G 0 2.0G 0% /dev
none 2.0G 8.0K 2.0G 1% /run
none 2.0G 0 2.0G 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 2.0G 0 2.0G 0% /run/user
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
drivers 466G 172G 294G 37% /usr/lib/wsl/drivers
lib 466G 172G 294G 37% /usr/lib/wsl/lib
$ sudo e2label ファイルシステム cloudimg-rootfs
multipathを無効化
sudo systemctl disable multipathd.socket
genieを実行しsystemdをPID1にする
genie -s
genieを起動時に実行する
~/.bashrcの末尾に以下の内容を追記する。
if [[ ! -v INSIDE_GENIE ]]; then
echo "Starting genie:"
exec /usr/bin/genie -s
fi
3.GitLabをインストール
依存パッケージのインストールと設定
sudo apt update
sudo apt install -y curl openssh-server ca-certificates
ここでメール通知のためにpostfixをインストールする。が、ここは自由なので別の仕組みを利用できるみたい。ここでは公式の通りpostfixを使うことにする。Internet Siteを選択した。
sudo apt install -y postfix
GitLabパッケージのリポジトリへの追加とインストール
ちなみに社内環境ではプロキシが存在すると思う。で、ホームディレクトリに~/.curlrcにプロキシを設定していたので以下のコマンドにあるcurlはプロキシが通ったんだけど、以下のコマンドでダウンロードしたシェルスクリプトを実行するときにはsudoを利用しているためプロキシ設定が適用されない。それを回避したくば、sudoコマンドに-Eオプションを付けよう(sudoコマンドとbashコマンドの間にオプションを記述すること)。
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
で、やっとこさGitLabをインストール!インストールが完了しWeb画面にアクセスできるまで結構時間がかかるためひたすら待機(5分~10分くらいかな?)
sudo apt-get install gitlab-ce
4.GitLabを起動
sudo gitlab-ctl reconfigure
5.動作確認
あとはURLにアクセスして構築したGitLabにアクセスしてみよう。以下のURLをホスト(Windows)のブラウザに入力してアクセスする。
http://localhost/
結論
疲れた…。
参考資料
Systemd有効化
https://snowsystem.net/other/windows/wsl2-ubuntu-systemctl/
GitLabインストール
日本語版 GitLabインストール手順(公式)
英語版 GitLabインストール手順(公式)
ピンバック: GitLabインストールエラー(UbuntuOnWSL2) – E-Lab / Engineer Laboratory