Windows WSL2 上に CentOS8でサーバ構築
2022/07/26
2023/02/18
最近Windows上のWSL2を使ってCentOS8で学習したいという要望があったので環境構築をすることになった。備忘録として残す。以前もWSL時代に同様の事を行いましたが今はWSL2となってバージョンが変わり更に本格的な環境となっている。大分導入事情が変わってきていることに気づいた。
Microsoft Storeで標準提供されているLinux2>
下記以外に有料WSL2 Linuxもあるが無料だと下記になる。以前は有料のCentOS7があったのに今は消えてしまった。
- Ubuntu
- Debian
- Suse Linux
- Oracle Linux
CentOS8はGITHUBからダウンロードできる2>
Microsoft Storeからは消え去ったものの実はGITHUBからダウンロードして使えたりします。
URLは下記のGITHUB から入手できます。
このページにリリースが出ています。CentOS8をインストール2>
12345678
CentOS8.zipをダウンロードしたら任意のフォルダーへ解凍します。以下のファイルが展開されているはずです。 CentOS8.exerootfs.tar.gzext4.vhdx CentOS8.exeダブルクリックするとインストールが開始されます。
WSL2 Linuxの確認2>
1 2 3 4 5 6 7 8 |
CentOS8.zipをダウンロードしたら任意のフォルダーへ解凍します。 以下のファイルが展開されているはずです。 CentOS8.exe rootfs.tar.gz ext4.vhdx CentOS8.exeダブルクリックするとインストールが開始されます。 |
沢山出てきましたね! 今回導入は CentOS8です。
1 2 3 4 5 6 7 8 9 10 |
C:\> wsl -l -v NAME STATE VERSION * docker-desktop Stopped 2 RockyLinux-8.5 Stopped 2 docker-desktop-data Stopped 2 CentOS7 Stopped 2 Ubuntu Stopped 2 Arch Stopped 2 CentOS7.6 Stopped 2 CentOS8 Stopped 2 |
CentOS8へ端末接続2>
それではターゲットであるCentOS8に接続してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
c:\> wsl -d CentOS8 最初はディレクトリーがWindowsのユーザHomeなので、LinuxのユーザHomeに切り替えます。 [root@localhost itchy]# cd [root@localhost itchy]# pwd [root@localhost itchy]# ps -e PID TTY TIME CMD 1 ? 00:00:00 init 7 ? 00:00:00 init 8 ? 00:00:00 init 9 pts/0 00:00:00 bash 23 pts/0 00:00:00 ps 初回はたったこれだけしか起動していません。 さて気が付いたのではないでしょうか? systemed が起動していません。 えー--- と思いますがWinsdows WSLでは未サポートなのですよ。 ただしサーバ単独起動はできると思います。まだまだサーバ起動までは遠いですね! 今回は無理やりsystemedで起動しますので |
CentOS8のupdate2>
これがまたすんなりいかないわけだ。既にCentOS8はサポート終了ですからね。AppStreamにしないと使えない。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@localhost]# cd /etc/yum.repos.d [root@localhost]# sed -i -e 's/^mirrorlist/#mirrorlist/g' -e 's/^#baseurl=http:\/\/mirror/baseurl=http:\/\/vault/g' /etc/yum.repos.d/CentOS-*repo レポジトリURLの一括変換を行います。 [root@localhost]# dnf update [root@localhost]# dnf install epel-release [root@localhost]# dnf install daemonize [root@localhost]# dnf dnf install python3.9 [root@localhost]# update-alternatives --config python3 <--python3.9を選択 [root@localhost]# pip3 install psutil [root@localhost]# dnf install https://github.com/arkane-systems/genie/releases/download/v2.2/genie-2.2-1.fc34.x86_64.rpm <--genieの導入 [root@localhost]# dnf install httpd [root@localhost]# dnf install mariadb-server [root@localhost]# dnf install wget |
CentOS8のupdate2>
12345678910111213141516
[root@localhost]# genie -s <-- 起動直後にctrl +c で一旦抜ける[root@localhost]# genie -s <--もう一度初回だけこれで起動[root@localhost]# sudo systemctl set-default multi-user.target [root@localhost]# ps -e PID TTY TIME CMD 1 ? 00:00:00 systemd 27 ? 00:00:00 systemd-journal 33 ? 00:00:00 systemd-udevd 73 ? 00:00:00 dbus-daemon 77 pts/0 00:00:00 machinectl 78 ? 00:00:00 systemd-machine 79 pts/1 00:00:00 bash 80 pts/1 00:00:00 (sd-pam) 138 pts/1 00:00:00 ps systemedが起動できましたね!これで安心です。
サーバの導入2>
1234567891011121314151617181920212223
dnf install httpdsystemctl start httpddnf install mariadb-serversystemctl start mariadb-server[root@localhost]# systemctl start httpd[root@localhost]# systemctl start mariadb[root@localhost]# ps -e PID TTY TIME CMD 1 ? 00:00:00 systemd 27 ? 00:00:00 systemd-journal 33 ? 00:00:00 systemd-udevd 73 ? 00:00:00 dbus-daemon 77 pts/0 00:00:00 machinectl 78 ? 00:00:00 systemd-machine 79 pts/1 00:00:00 bash 80 pts/1 00:00:00 (sd-pam) 141 ? 00:00:00 httpd 142 ? 00:00:00 httpd 143 ? 00:00:00 httpd 144 ? 00:00:00 httpd 145 ? 00:00:00 httpd 424 ? 00:00:00 mysqld 488 pts/1 00:00:00 ps
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@localhost]# genie -s <-- 起動直後にctrl +c で一旦抜ける [root@localhost]# genie -s <--もう一度初回だけこれで起動 [root@localhost]# sudo systemctl set-default multi-user.target [root@localhost]# ps -e PID TTY TIME CMD 1 ? 00:00:00 systemd 27 ? 00:00:00 systemd-journal 33 ? 00:00:00 systemd-udevd 73 ? 00:00:00 dbus-daemon 77 pts/0 00:00:00 machinectl 78 ? 00:00:00 systemd-machine 79 pts/1 00:00:00 bash 80 pts/1 00:00:00 (sd-pam) 138 pts/1 00:00:00 ps systemedが起動できましたね!これで安心です。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
dnf install httpd systemctl start httpd dnf install mariadb-server systemctl start mariadb-server [root@localhost]# systemctl start httpd [root@localhost]# systemctl start mariadb [root@localhost]# ps -e PID TTY TIME CMD 1 ? 00:00:00 systemd 27 ? 00:00:00 systemd-journal 33 ? 00:00:00 systemd-udevd 73 ? 00:00:00 dbus-daemon 77 pts/0 00:00:00 machinectl 78 ? 00:00:00 systemd-machine 79 pts/1 00:00:00 bash 80 pts/1 00:00:00 (sd-pam) 141 ? 00:00:00 httpd 142 ? 00:00:00 httpd 143 ? 00:00:00 httpd 144 ? 00:00:00 httpd 145 ? 00:00:00 httpd 424 ? 00:00:00 mysqld 488 pts/1 00:00:00 ps |