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  | 
					
	
   

