sendmailをインストールする
0.環境
OS: Rocky Linux9.2 仮想ソフトウェア: VirtualBox7.0
1. インストール方法
自分でインストールしようとしてぬまった
Rocky Linux9.2でDockerのtutorial part6ができない
$ sudo dnf -y install docker
上記のコマンドのdockerではうまくいかなかった
0. 環境
- 仮想マシン:VirtualBox 7.0
- OS:Rocky Linux 9.2
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. 環境
- 仮想マシン:VirtualBox 7.0
- OS:Rocky Linux 9.2
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 を開く
上図のように Window Titlebarsから Maximize Minimize を有効化する
2. 日本語入力できるようにする
langpacks-jaをインストールする
$ sudo dnf -y install langpacks-ja
再起動後にSettings -> Keyboard から Input SourcesにJapanese(Anthy)を加える
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. メールの送信テスト
telnetとsendmailでの2通りのテスト方法を記述する。
telnetを用いてテストすると実際に自分でSMTPのシーケンスを打ち込んでメールを送信する流れを体感できる
sendmailコマンドを用いたテストは手早く簡単にテストでき、メールのheader fromなどのヘッダーを自動入力してくれる
4-1. telnetを用いたテスト
telnetをインストールする
$ sudo dnf -y install telnet
ループバックアドレス(127.0.0.1)、自分自身のIPアドレスまたは自分自身のホストネームとポート番号25を指定してtelnetでSMTP通信を開始できる。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がないということで困っている人がいた
下の方のリンクを読んでみると以下のように書かれている
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イメージとかでインストールして」 とのこと。
- 以下の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イメージのダウンロード
上のリンクから、x86_64アーキテクチャのRocky8内のMinimalをクリックしてRocky LinuxのISOイメージをダウンロードします
バックドア等が仕込まれているか気になる方はチェックサムを確認しましょう
チェックサムは上記の画面のチェックサムをクリックすることでダウンロードできます
下の画像は上記の画面のチェックサムをWindows11のcmdでSHA256で確認しています
3. VirtualBoxの設定
イガグリみたいな水色の新規ボタンをクリック
設定ダイアログが開かれるのでエキスパートモードにします
Name and Operating Systemで仮想マシンの名前を決め、先ほどダウンロードした
ISO Imageを選択します
このときにSkip Unattended Installationにチェックを入れておきます*1
Hardwareは以下のようにメインメモリーとProcessorsを設定します(自分の好みに設定して良いですが、後述の最低スペックは下回らないように)
Rocky Linuxに必要な最低スペックはRHEL8の最低スペックを参考にしました(Rocky LinuxはRed Hat Enterprise Linux®とバグまで100%の互換性を持つように設計されたOSです*2)。
Hard Diskの容量は下記のMinimum required disk spaceに引っかからないように設定します
筆者は15GBにしました
以上の設定が終わったら完了ボタンをクリックします
4. Rocky Linuxの設定
3.の設定が終わったら起動ボタンを押します
うまくいくと次の画面が表示されます
上記三つの選択肢がありますが、今回はTest this media & install Rocky Linux 8.8を選択してEnter
言語選択画面では日本語を選択しておきます
キーボード設定は日本語に設定すると自動的にjpに切り替わります
続行ボタンをクリックしてインストール概要画面に進みます(筆者の環境では画面の右部分がなぜか見切れてしまいます)
インストール概要画面には様々な設定項目がありますが、インストールに必要な項目は
- インストール先(見切れてオレンジ色の!マークがあるところ)
- ユーザの作成(インストール概要画面を下にスクロール)
の2項目になります
インストール先画面では3.VirtualBoxの設定で作成したHARDDISKを選択し、完了ボタンをクリック
ユーザの作成ではこのユーザを管理者にする(M)にチェックをしてから空白部分に必要な情報を入力して、完了をクリック(このユーザを管理者にする(M)にチェックを入れないとrootパスワード(R):を設定する必要があります)
以上を設定したらインストールの開始ボタンを押してインストールを開始します
インストール完了後にシステムの再起動ボタンをクリック
再起動後は以下の画面になります。上側の選択肢を選んでEnter
ログイン画面が表示されました。Rocky Linuxのインストール完了です!
後は自分で設定したユーザとパスワードでログインできます