Rocky Linux9.2でDockerのtutorial part6ができない

$ sudo dnf -y install docker

上記のコマンドのdockerではうまくいかなかった

0. 環境

1. Dockerのtutorial part6でpermission denied

https://docs.docker.com/get-started/06_bind_mounts/

上記URLのハンズオンの中で、コンテナ上のsrcディレクトリ内をlsする作業がある

このときに

ls: cannot open directory 'src': Permission denied

と出てlsができない

sudo権限でコマンドを打っても、ユーザーの権限を変えてもlsができなかった

2. 解決方法

$ sudo dnf -y install docker

で入手したdockerではなく、

https://mebee.info/2022/08/21/post-77325/

上記のURLのサイトの方法で入試したdockerを用いると解決した

$ sudo dnf -y install docker

で入手したdockerはpodman-dockerと呼ばれるもので、podmanでdockerコマンドを実行しているらしい

Rocky Linux9.2でminikube環境を構築する

会社でkubernetesを使ってたから、ちょっと勉強しようと思った

minikube startコマンドが使えるようになるまで環境構築する

0. 環境

1. minikubeのインストール

以下のURLからminikubeのBinaryをダウンロードする https://minikube.sigs.k8s.io/docs/start/ サイトにある通り、以下2個のコマンドを実行する

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

この状態でminikube startコマンドを打つと以下のように出力される

😄  minikube v1.31.2 on Rocky 9.2
👎  Unable to pick a default driver. Here is what was considered, in preference order:
    ▪ podman: Not healthy: "sudo -n -k podman version --format {{.Version}}" exit status 1: sudo: a password is required    ▪ podman: Suggestion: Add your user to the 'sudoers' file: 'admin ALL=(ALL) NOPASSWD: /usr/bin/podman' , or run 'minikube config set rootless true' <https://podman.io>
💡  Alternatively you could install one of these drivers:
    ▪ docker: Not installed: exec: "docker": executable file not found in $PATH
    ▪ kvm2: Not installed: exec: "virsh": executable file not found in $PATH
    ▪ qemu2: Not installed: exec: "qemu-system-x86_64": executable file not found in $PATH
    ▪ virtualbox: Not installed: unable to find VBoxManage in $PATH

❌  Exiting due to DRV_NOT_HEALTHY: Found driver(s) but none were healthy. See above for suggestions how to fix installed drivers.

一見さんお断り感がすごいが1つずつエラーを解消していく

dnfとかyumでインストールできれば楽なんだけどなあ......

2. エラーの解消

上から順にエラーを解消していく

2-1. podman関係のエラー

以下が出力されている[username]は自分のuser名

▪ podman: Not healthy: "sudo -n -k podman version --format {{.Version}}" exit status 1: sudo: a password is required    
▪ podman: Suggestion: Add your user to the 'sudoers' file: '[username] ALL=(ALL) NOPASSWD: /usr/bin/podman' , or run 'minikube config set rootless true' <https://podman.io>

▪ podman: Not healthy:......で、このエラーはminikubeがsudo権限で実行できないために起こると示されていて

▪ podman: Suggestion: ......で、visudoでsudoersに.....の部分を追記すれば解決すると解決方法が示されている

以上より以下のコマンドを実行する

$ sudo visudo
以下を追記する
username ALL=(ALL) NOPASSWD: /usr/bin/podman

usernameは実行したいuserの名前に適宜変えてください

この状態でminikube startを実行するといろいろな処理が行われる

$ minikube start

2-2. その他注意事項

実は筆者は2-1の実行前に、DockerとVirtualBoxをインストールしている。もし、上記の変更でうまくいかなかったら、それらをインストールしてみてください

Rocky Linu9.2でウィンドウに最大最小化ボタンと日本語入力ができるようにする

ウィンドウのタイトルバーが寂しくて、システムの表示等はすべて英語でいいが、日本語入力ができるようにしたかったので

0. 環境

インストールの環境設定で言語をEnglishに設定した Rocky Linux9.2(virtual box 7.0上)

1. Tweakによるウィンドウバーの設定

以下のコマンドを実行して、Tweaksを使用できるようにする

$ sudo dnf -y install gnome-tweaks

デスクトップから Show Applications/Utilities/Tweaks を開く

Tweaksの設定
上図のように Window Titlebarsから Maximize Minimize を有効化する

2. 日本語入力できるようにする

langpacks-jaをインストールする

$ sudo dnf -y install langpacks-ja

再起動後にSettings -> Keyboard から Input SourcesにJapanese(Anthy)を加える

Japanese(Anthy

Postfixサーバーを構築する

この記事に書いてあること

  1. 外部のサーバーとSMTP通信できるPostfixサーバーの構築
  2. 自分自身へのメールの送り方
  3. Postfixのメールがどこにあるか

0.環境

OS: Rocky Linux8.8 仮想ソフトウェア: VirtualBox7.0

1.Postfixのインストール

dnfでインストールする

$ sudo dnf -y install postfix

2. 外部通信のためのfirewall設定

外部のサーバーとSMTP通信するため、以下のコマンドでfirewallに穴をあける

$ sudo firewall-cmd --add-service=smtp --permanent
success
$ sudo firewall-cmd --reload
success

上記のようにsuccessと出れば成功

以下のコマンドを打ち、servicesにsmtpが加えられているか確認しても良い

$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources:
  services: cockpit dhcpv6-client smtp ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

3. Postfixの設定

/etc/postfix/main.cfのinet_interfacesの設定をlocalhostからallに変更する

inet_interfaces = localhost
↓
inet_interfaces = all

Postfixを起動させる。以下のように起動させると再起動時にも自動でPostfixが立ち上がるようになる

$ systemctl enable postfix --now

4. メールの送信テスト

telnetsendmailでの2通りのテスト方法を記述する。

telnetを用いてテストすると実際に自分でSMTPのシーケンスを打ち込んでメールを送信する流れを体感できる

sendmailコマンドを用いたテストは手早く簡単にテストでき、メールのheader fromなどのヘッダーを自動入力してくれる

4-1. telnetを用いたテスト

telnetをインストールする

$ sudo dnf -y install telnet

ループバックアドレス(127.0.0.1)、自分自身のIPアドレスまたは自分自身のホストネームとポート番号25を指定してtelnetSMTP通信を開始できる。telnetはquitを入力すると終了できる。

$ telnet 127.0.0.1 25
or
$ telnet [自分自身のIPアドレス]
or
$ telnet [自分自身のホストネーム]

RFCによって定められてSMTPコマンドを打ちこんでメールを送信することができる。以下にSMTPセッションの例を示す(一部加工してある)。

$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 [Postfixサーバーのホスト名] ESMTP Postfix
HELO kk
250 test.num01.kk
MAIL FROM: test@hoge.com
250 2.1.0 Ok
RCPT TO: [宛先メールアドレス]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
test mail!
.
250 2.0.0 Ok: queued as CD37E88FADC
quit
221 2.0.0 Bye
Connection closed by foreign host.
新しいメールが /var/spool/mail/admin にあります

簡単なSMTPコマンドの説明は以下。上から順に打ち込んでいけばメールを送信できる。 1. HELO [てきとうな文字列] 2. MAIL FROM: [送信元メールアドレス] 3. RCPT TO: [宛先メールアドレス] 4. DATA .(ピリオド)のみの行に改行を入力するまで、メール本文を打ち込める

4-2. sendmailコマンドを用いたテスト

$ sendmail [ユーザー名]@[自分自身のホストネーム]をターミナルに入力しメール本文を入力する。メール本文の入力は.(ピリオド)のみの行と改行を入力することで終了できる。

$ sendmail [ユーザー名]@[自分自身のホストネーム]
test mail2!
.

5. メールの保管場所

デフォルトでは/var/spool/mail/[ユーザー名]に一つのファイルとして複数のメールが保管されている。以下の例は一部加工している

$ cat [ユーザー名]
Return-Path: <test@hoge.com>
X-Original-To: xxxxxxx@xxxxx 
Delivered-To: xxxx@xxxxx 
Received: from xx (localhost [127.0.0.1])
        by xx.xx.xxx (Postfix) with SMTP id CD37E88FADC
        for <xxxx@xxxx>; Tue, 19 Sep 2023 06:41:49 -0400 (EDT)
Message-Id: <20230919104204.CD37E88FADC@xxx.xxxx.xxx>
Date: Tue, 19 Sep 2023 06:41:49 -0400 (EDT)
From: test@hoge.com

test mail!

From xxxx@xxx  Tue Sep 19 06:53:16 2023
Return-Path: <xxxx@xxx>
X-Original-To: xxxx@xxx
Delivered-To: xxxx@xxxx 
Received: by xxxx.xxxx.xx (Postfix, from userid 1000)
        id 3017D88FADD; Tue, 19 Sep 2023 06:53:16 -0400 (EDT)
Message-Id: <20230919105316.3017D88FADD@xxx.xxx.xx>
Date: Tue, 19 Sep 2023 06:53:11 -0400 (EDT)
From: xxxx <xxxx@xxx>

test mail 2!

メールの受信形式はmain.cfを変更することで変更できる

Rocky Linux8をminimalでインストールするとログがない

1./var/log/messagesがない

Rocky Linux8(ver8.8)をインストールすると、/var/log/messagesがない。このため、postfix等のserviceのログが記録できない(/var/log以下のディレクトリにログが出ないという意味)

2.解決方法

rsyslogをインストールする。

$ sudo dnf -y install rsyslog

3.既知の問題らしい

Rocky LInuxのフォーラムサイトをのぞいてみると、同様にminimalでインストールするとrsyslogがないということで困っている人がいた

forums.rockylinux.org

forums.rockylinux.org

下の方のリンクを読んでみると以下のように書かれている

CentOS nor RHEL have minimal images for 8.4. It is likely they have ran into the same issues we have and just don’t see a need to continue working on it. Release Engineering has not been able to resolve this issue as rsyslog is not in BaseOS and we do not believe it to be a blocker for general availability. We will still release the minimal image, as is, missing rsyslog. We do plan on re-spinning ISO’s in the future for secure boot kernels. We may or may not solve this issue by then.
With that being said, if someone from the community wants to attempt to solve this issue in the mean time, you are more than welcome to do so. Until then, the minimal image will not contain rsyslog. And if you require rsyslog immediately on install, please use the DVD ISO or a kickstart/network install.

上記の文章 1 をざっくり要約すると、 「CentOSとかRHELでも同じ問題があるけど、直す必要はなさそうだから、直しません。直したければ自分で直して。今すぐインストールしたいならDVD版のISOイメージとかでインストールして」 とのこと。


  1. 以下のURLにバグとして報告されていたと思われるが現在ではアクセス不可能になっている。 https://bugs.rockylinux.org/show_bug.cgi?id=14

VirtualBoxにRocky Linux8.8(minimal)をインストールする

1. 環境

VirtualBox    : ver 7.0

Rocky Linux : ver 8.8

OS               : windows11 Pro

 

2. ISOイメージのダウンロード

rockylinux.org

上のリンクから、x86_64アーキテクチャのRocky8内のMinimalをクリックしてRocky LinuxのISOイメージをダウンロードします

Minimalをクリック

バックドア等が仕込まれているか気になる方はチェックサムを確認しましょう

チェックサムは上記の画面のチェックサムをクリックすることでダウンロードできます

下の画像は上記の画面のチェックサムをWindows11のcmdでSHA256で確認しています

チェックサムの確認

3. VirtualBoxの設定

イガグリみたいな水色の新規ボタンをクリック

新規仮想マシン作成

 

設定ダイアログが開かれるのでエキスパートモードにします

設定ダイアログ

Name and Operating Systemで仮想マシンの名前を決め、先ほどダウンロードした

ISO Imageを選択します

Name and Operating System

このときにSkip Unattended Installationにチェックを入れておきます*1

Hardwareは以下のようにメインメモリーとProcessorsを設定します(自分の好みに設定して良いですが、後述の最低スペックは下回らないように)

Rocky Linuxに必要な最低スペックはRHEL8の最低スペックを参考にしました(Rocky LinuxRed Hat Enterprise Linux®とバグまで100%の互換性を持つように設計されたOSです*2)。

Hard Diskの容量は下記のMinimum required disk spaceに引っかからないように設定します

筆者は15GBにしました

access.redhat.com

Hard Disk設定画面

以上の設定が終わったら完了ボタンをクリックします

 

4. Rocky Linuxの設定

3.の設定が終わったら起動ボタンを押します

うまくいくと次の画面が表示されます

Rocky Linux installオプション
  • Install Rocky Linux 8.8
  • Test this media & install Rocky Linux 8.8
  • Troubleshooting

上記三つの選択肢がありますが、今回はTest this media & install Rocky Linux 8.8を選択してEnter

 

言語選択画面では日本語を選択しておきます

キーボード設定は日本語に設定すると自動的にjpに切り替わります

言語選択画面

日本語を選択

続行ボタンをクリックしてインストール概要画面に進みます(筆者の環境では画面の右部分がなぜか見切れてしまいます)

インストール概要画面

インストール概要画面には様々な設定項目がありますが、インストールに必要な項目は

  • インストール先(見切れてオレンジ色の!マークがあるところ)
  • ユーザの作成(インストール概要画面を下にスクロール)

の2項目になります

 

インストール先画面では3.VirtualBoxの設定で作成したHARDDISKを選択し、完了ボタンをクリック

ハードディスクの選択

ユーザの作成ではこのユーザを管理者にする(M)にチェックをしてから空白部分に必要な情報を入力して、完了をクリック(このユーザを管理者にする(M)にチェックを入れないとrootパスワード(R):を設定する必要があります)

ユーザの作成画面

以上を設定したらインストールの開始ボタンを押してインストールを開始します

インストール完了後にシステムの再起動ボタンをクリック

システムの再起動

再起動後は以下の画面になります。上側の選択肢を選んでEnter

再起動後画面

ログイン画面が表示されました。Rocky Linuxのインストール完了です!

後は自分で設定したユーザとパスワードでログインできます

Rocky Linuxログイン画面

 







 

*1:

Skip Unattended Installationにチェックを入れないと筆者は以下画像のように

pyanaconda.modules.common.errors.installation.SecurityInstallationError: .......

というエラーが出てインストールできませんでした

自動インストール(Unattended Installation)のエラー

*2:

rockylinux.org