第15章 システムの設定
RHEL イメージモードのシステム設定には、オペレーティングシステムを構築、デプロイ、および管理するための Container-native のアプローチが含まれます。この方法は、特に registry.redhat.io/rhel9/rhel-bootc イメージに基づくコンテナーイメージを利用して、OS とその設定をカプセル化します。
15.1. 一時的なランタイムの再設定 リンクのコピーリンクがクリップボードにコピーされました!
ベースイメージ設定で動的な再設定を実行できます。たとえば、firewall-cmd --permanent コマンドを実行すると、再起動後も変更が永続的に適用されます。
/etc ディレクトリーはデフォルトで永続的です。ツールを使用して変更を実行する場合 (例: firewall-cmd --permanent)、システム上の /etc の内容がコンテナーイメージに記述されている内容と異なる可能性があります。
デフォルト設定では、まずベースイメージに変更を加え、実行中のシステムを再起動せずに変更をキューに入れます。その後、同時に書き込みを行って、メモリー内でのみ既存のシステムに変更を適用します。
バインドマウントを使用すると、/etc ディレクトリーを一時的に設定できます。この場合、etc ディレクトリーはマシンのローカルルートファイルシステムの一部になります。たとえば、Anaconda キックスタートを使用して静的 IP アドレスを注入すると、アップグレード後もそのアドレスが保持されます。
3-way マージがアップグレード間で適用されます。各 "デプロイメント" に専用の /etc のコピーがあります。
/runディレクトリー-
/runディレクトリーは、システムの再起動時に削除されるように定義されている API ファイルシステムです。/runディレクトリーは一時ファイルに使用します。 - 動的な再設定モデル
- Pull モデルでは、Podman API を使用して、ベースイメージに直接埋め込まれたコードや、リモートネットワークサーバーに接続して設定を行う特権コンテナーを含めることができます。その後、追加のコンテナーイメージを起動できます。
Push モデルでは、一部のワークロードが Ansible などのツールによって実装されます。
- systemd
-
/run/systemdディレクトリーに書き込むことで、動的な一時再設定に systemd ユニットを使用できます。たとえば、systemctl edit --runtime myservice.serviceは、変更を永続化せずに、myservice.serviceユニットの設定を動的に変更します。 - NetworkManager
-
一時的なネットワーク設定を適用するには、
/run/NetworkManager/conf.dディレクトリーを使用します。変更をメモリーにのみ書き込むには、nmcli connection modify --temporaryコマンドを使用します。--temporaryオプションを指定しないと、コマンドによって永続的な変更が書き込まれます。 - podman
-
コンテナーの終了時にコンテナーを自動的に削除するには、
podman run --rmコマンドを使用します。--rmオプションを指定しないと、システムの再起動後も保持されるコンテナーがpodman runコマンドによって作成されます。