※当サイトの記事には、広告・プロモーションが含まれます。

WSL 2でRHEL 7.9をインストールしDockerをインストールしたかったが...

xtech.nikkei.com

xtech.nikkei.com

xtech.nikkei.com

⇧ これ、障害の復旧に時間がかかっていたのが

  • COBOLの実装が起因でCOBOLに知見のある技術者がいない
  • システムの作りが保守・運用しにくいものになっている

とかが原因ならJavaでリプレースするメリットはあると思うけど、そのあたりの事情が分からんので何とも言えんですな...

復旧に時間がかかったとはいえ、

xtech.nikkei.com

 全銀ネットは10日午後2時30分から代替手段による対処に着手。具体的には、全銀システムが備える「新ファイル転送」や、LTO(Linear Tape-Open)テープの持ち込みによって処理するようにした。モアタイムシステムを利用する金融機関は同システムを使っても送金を処理できるという。

全銀システムの大規模障害、中継コンピューター2台ともに不具合で冗長構成が機能せず | 日経クロステック(xTECH)

⇧ 代替の復旧プランが準備できていた点など、リスクヘッジがしっかりできていた部分は称賛に値する気がしますかね。

どちらにしろ、障害の原因について詳細は明らかにしてもらえると、ありがたいですな。

2023年10月17日(火)追記:↓ ここから

続報によると、

xtech.nikkei.com

xtech.nikkei.com

⇧ とのことらしいのだけど、

  • マシン自体のメモリ不足
  • プログラムの不備でメモリ使用量が多くなってメモリ逼迫してのメモリ不足

で、対応が変わってくるとは思うけど、どちらにしろ適切なメモリ量の見極めは難しいっすな...

2023年10月17日(火)追記:↑ ここまで

WSL 2(Windows Subsystem for Linux 2)でRHELRed Hat Enterprise Linux)はtarファイルでインストールする

タイトルから推測できるように、「WSL 2(Windows Subsystem for Linux 2)」が悪いのか「RHEL 7.9(Red Hat Enterprise Linux 7.9)」が悪いのかはハッキリしないのだけど、導入に失敗しているので、そんな情報でも良いという方のみご照覧ください。

Microsoftの公式のドキュメントによると、

learn.microsoft.com

Microsoft Store にない場合でも、tar ファイルと一緒にインポートすることで、LinuxWindows サブシステム (WSL) 内で任意の Linux ディストリビューションを使用できます。

WSL で使用する Linux ディストリビューションをインポートする | Microsoft Learn

⇧ とのことらしい。

Microsoft Storeでインストールできるディストリビューションはと言うと、

learn.microsoft.com

⇧ コマンドで確認できるようなので、確認してみました。

wsl --list --online    

C:\Users\Toshinobu>wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed    

⇧ とあるように、Microsoft Storeでは「RHELRed Hat Enterprise Linux)」のディストリビューションは用意されていない。

なので、「WSL 2(Windows Subsystem for Linux 2)」で「RHELRed Hat Enterprise Linux)」のディストリビューションを利用するには、「RHELRed Hat Enterprise Linux)」のtarファイルを調達する必要がありますと。

ちなみに、

access.redhat.com

⇧ 2020年9月に問題提起されて、2023年7月の時点で、『Red Hat is currently assisting customers who have RHEL subscriptions, either developer or production, with the installation of RHEL on WSL2. We are also working on some new features to make use with WSL2 even easier. If you wish to take advantage of this, please contact your Red Hat account team and ask them for assistance.』って話らしいので、公式のドキュメントで公開される日は来ないんかね...

「WSL 2(Windows Subsystem for Linux 2)」での「RHELRed Hat Enterprise Linux)」の導入方法については、Microsoftがドキュメント化するべきな気はするんだが...

Dockerに対応しているのは、RHEL 7(Red Hat Enterprise Linux 7)まで?

Dockerの公式のドキュメントが曖昧なのでハッキリしないんだが、

docs.docker.jp

動作条件

Docker は 64bit でインストールされた何らかの Red Hat バージョンを必要とします。さらに、Red Hat 7 で動作する kernel は少なくとも 3.10 以上が必要です。

https://docs.docker.jp/engine/installation/linux/rhel.html

⇧ とあって、Dockerに対応している「RHELRed Hat Enterprise Linux)」のバージョンがいまいち分からん...

zenn.dev

Red Hat Enterprise Linux 8 (RHEL8) は Docker 非対応ですが、どうしても Docker でアプリケーションを起動したい場合は、互換ツールである Podman を利用する方法があります。

Red Hat Enterprise Linux 8 で Docker を使う

Red Hat の公式ドキュメントに説明はありますが、長いので、結局何をすればいいの?と迷うかと思います。

Red Hat Enterprise Linux 8 で Docker を使う

⇧ ということらしいので、特殊な方法を用いない限りは、Dockerに対応しているのは「RHEL 7(Red Hat Enterprise Linux 7)」という認識で良いらしい。

WSL 2(Windows Subsystem for Linux 2)にRHEL 7(Red Hat Enterprise Linux 7)をインストールする

まずは、「WSL 2(Windows Subsystem for Linux 2)」に「RHEL 7(Red Hat Enterprise Linux 7)」をインストールしてみたいと思います。

qiita.com

⇧ 上記サイト様を参考にさせていただきます。

作業の流れとしては、

  1. RHEL 7.9(Red Hat Enterprise Linux 7.9)のisoイメージをダウンロード
  2. Virtual Boxで作業
  3. WinSCPで作業
  4. WSL 2(Windows Subsystem for Linux 2)で作業
    • tarファイルをインポートする
    • WSL 2上でRHEL 7を起動する

⇧ のような感じになるかと。

では、順々に作業していきます。

■1.RHEL 7.9(Red Hat Enterprise Linux 7.9)のisoイメージをダウンロード

まずは、「Red Hat Developer Program」に登録していない場合は、

developers.redhat.com

⇧ アカウントを作って登録しておきます。

Red Hatの中の人が、

rheb.hatenablog.com

⇧「Red Hat Developer Program」の始め方を紹介してくれているので、参考になるかと。

「REHL(Red Hat Enterprise Linux)」以外にも、Red Hatの製品を試すことができるようです。

で、今回は

developers.redhat.com

⇧「RHEL 7.9(Red Hat Enterprise Linux 7.9)」のisoイメージ(DVD ISO)をダウンロードしました。アーカイブのリンクっぽいものが見当たらないので、旧いバージョンはダウンロードできなくなっていく感じなんかな?

■2.Virtual Boxで作業

■■仮想マシンの作成

続いて、Virtual Boxで作業ですが、Virtual Boxのバージョンが旧くなっていたので、wingetでアップグレードしてます。(バージョンアップは行わなくてもOK、各々の環境に合わせてください。)

winget upgrade -e --id Oracle.VirtualBox

Virtual Boxマネージャーを起動。

「名前(N)」を適当に決めて、「バージョン(V):」は「Red Hat(64bit)」にしてます。「次へ(N)」を押下。

メモリを2048MB、CPUを2にしてます。「次へ(N)」を押下。

仮想ハードディスクのサイズは、20GBにしてます。「次へ(N)」を押下。

「完了(F)」を押下。

■2.Virtual Boxで作業

■■仮想マシンにisoイメージをマウントする

続いて、仮想マシンに「RHEL 7.9(Red Hat Enterprise Linux 7.9)」のisoイメージ(DVD ISO)をマウントしていきます。

作成した仮想マシンを選択した状態で、「設定(S)」を選択。

左サイドバーで「ストレージ」を選択した状態で、「コントローラー: IDE」のアイコン(「光学ドライブの追加」)を押下。

「追加(A)」を押下。

ダウンロードしておいた「RHEL 7.9(Red Hat Enterprise Linux 7.9)」のisoイメージ(DVD ISO)を選択します。

「OK」押下。

■2.Virtual Boxで作業

■■仮想マシンのネットワークの設定

ゲストOSとホストOSをWinSCPで接続したいのですが、

a-zs.net

⇧ 上記サイト様でマトリックス表を作成してくださっているのものを参考にさせていただくと、

  • ブリッジアダプター
  • ホストオンリーアダプター

の2択になってくるっぽい。

zorinos.seesaa.net

shin569.hatenablog.com

⇧ 上記サイト様を参考に、Virtual Boxの仮想マシンのネットワーク設定をしていく。

仮想マシンは一度、停止しておく。

今回は、「ホストオンリーアダプター」を設定することにして、Virtual Box マネージャーで「ツール」を選択した状態で、「Host-only Networks」タブを選択して「作成(C)」を押下すると、追加される。

続いて、Virtual Box マネージャーで仮想マシンを選択した状態で、「設定(S)」を押下。

「ネットワーク」を選択した状態で、「アダプター2」タブを選択し、さきほど作成した「ホストオンリーアダプター」を設定して、「OK」押下。

で、

qiita.com

⇧ アダプター1は、「NATネットワーク」にした方が良いんかな?

デフォルトだと「NAT」になってるのだけど、「NATネットワーク」に変更しておきました。

■2.Virtual Boxで作業

■■仮想マシンを起動する

isoイメージをマウントとネットワーク設定が済んだら、仮想マシンを起動。

ゲストOS側で、インストールを進めていくのだけど、

infra-exp.com

⇧ ネットワーク接続を有効にしておいた方が良さそう。

諸々の設定を行うと、インストールが開始される。ROOTユーザーのパスワードの設定と、ユーザーの作成もしておきました。

RHEL 7.9(Red Hat Enterprise Linux 7.9)」がインストールできましたらば、

qiita.com

isleofhoso.com

⇧ 上記サイト様にあるようにサブスクリプション登録しておきます。

⇧ Subscribedされていないと、Red Hat系のディストリビューションのパッケージ管理ツールであるyumコマンドが使えないので、Subscribedしておいた方が良いかと。

■2.Virtual Boxで作業

■■tarファイルを作成する

続いて、tarファイルを作成します。

cd /    
tar cvfzp rhel7.9.tar.gz bin dev etc home lib lib64 media opt run root sbin srv usr var    

とりあえず、tarファイルはできました。

■2.Virtual Boxで作業

■■SSH接続のための確認

SSH接続のための確認をしていきます。

yoshinobori.com

gordiustears.net

⇧ 上記サイト様を参考。

⇧enp0s8を見ると、「ホストオンリーアダプター」のIPアドレスが設定されていないようなので、

qiita.com

⇧上記サイト様を参考に設定してみます。

nmtuiコマンドを実施。

nmtui

「Edit a connection」を選択し、Enterキー押下。

VirtualBox仮想マシンに割り当てた「ホストオンリーアダプター」に該当する「enp0s8」を選択し、Enterキー押下。

IPv4 COMFIGURATION <Automatic>」の行の「<Show>」にカーソルを移動し、Enterキー押下。

「Addresses」の「<Add...>」にカーソルを移動し、Enterキー押下。

VirtualBox仮想マシンに割り当てた「ホストオンリーアダプター」に設定されていたIPv4のアドレスのレンジで設定する。

「Automatically connect」にカーソルを移動し、スペースキーを押下し、バッテンマークを入力し、

「<OK>」にカーソルを移動し、Enterキー押下。

「<Back>」にカーソルを移動し、Enterキー押下。

「<OK>」にカーソルを移動し、Enterキー押下。

シェルに戻ってくるので、enp0s8にIPv4のアドレスが割り当てられたか確認。

で、RHEL 7.x(Red Hat Enterprise Linux 7.x)だけなのかは分からんのだけど、

nwengblog.com

⇧ 上記サイト様にあるように、「TCP Wrappers」という仕組みのせいで、

  1. /etc/hosts.allow
  2. /etc/hosts.deny

ってファイルの設定も考慮する必要があるらしい。「TCP Wrappers」は非推奨になったらしいので、RHEL 7.x(Red Hat Enterprise Linux 7.x)以降は気にしなくても良いのかもしれんのだけど、気付かずに無茶苦茶ハマったんだが、時間を返して欲しい...

「/etc/hosts.allow」が優先されるらしいので、VirtualBoxで追加した「ホストオンリーアダプター」のIPv4のアドレスを追記すれば良いらしい。

そしたらば、WinSCPからSSH接続できるようになるっぽいので、

作成していたtarファイルをホスト側にダウンロードする。

ダウンロードできました。

■4.WSL 2(Windows Subsystem for Linux 2)で作業

■■tarファイルをインポートする

そしたらば、コマンドプロンプトなどを起動して、「WSL 2(Windows Subsystem for Linux 2)」にtarファイルをインポートします。

wsl --import <DistroName> <InstallLocation> <InstallTarFile>    

■4.WSL 2(Windows Subsystem for Linux 2)で作業

■■WSL 2上でRHEL 7.9を起動する

起動してみましょう。

⇧ う~む、『Processing fstab with mount -a failed.』ってエラーが気になるんだが、

learn.microsoft.com

⇧ とりあえず、systemdを使えるようにします。

あとは、「/etc/resolv.conf」ファイルを作成して、以下を追記。

nameserver 8.8.8.8    

再起動後、「RHELRed Hat Enterprise Linux)」のサブスクリプション登録を行います。

で、再起動後、ログインし直して、systemd自体は有効になったぽいのだけど、sshdのサービスが「inactive(dead)」とかなっていてSSH接続できんという...

RHELRed Hat Enterprise Linux)」のサブスクリプション登録で、Subscribedされていれば、yumが使えるようになるので、yum updateをしてみますが、

qiita.com

⇧ 本番環境では、yum updateで環境が壊れることもあるそうな...むっちゃ怖いっすな、手順が無い状態で本番環境は触りたくない...

まぁ、今回は、本番環境でもなく、且つ、個人的な学習用の初期環境構築ということで、そもそも環境が全く動いていない状態なんで実行。

yum update    

まぁ、変わらんのだけど...

一応、

github.com

⇧ 上記サイト様によりますと、/etc/wsl.confの設定で、『Processing fstab with mount -a failed.』を出なくすることはできるっぽいのだけど、sshdのサービスが「inactive(dead)」は変わらず...

他にも「inactive(dead)」なサービスが出てるので、根本的に破綻している気がする...

ということで、結局、「WSL 2(Windows Subsystem for Linux 2)」で「RHEL 7.9(Red Hat Enterprise Linux 7.9)」は使い物にならんという結果になりました。

Microsoftの公式のドキュメントで「RHELRed Hat Enterprise Linux)」のtarファイルからimportする例を紹介してくれていないので、そもそも「WSL 2(Windows Subsystem for Linux 2)」で「RHEL 7.9(Red Hat Enterprise Linux 7.9)」を正常に稼働させることは不可能なのかもしれないのだが...

RHELRed Hat Enterprise Linux)」については、VirtualBox 側で動作検証するしかないんかな?

何にしても、

う~む、毎度モヤモヤ感が半端ない...

今回はこのへんで。