第16章 システムの設定
Image Mode for RHEL は、コンテナーネイティブなアプローチを使用してオペレーティングシステムをビルド、デプロイ、管理します。イメージモードパッケージ、オペレーティングシステムおよびその設定は、registry.redhat.io/rhel10/rhel-bootc イメージをベースとしたコンテナーイメージとして扱われます。このイメージには、オペレーティングシステムとその設定が、イミュータブルなコンテナーレイヤーとして含まれています。
16.1. 一時的なランタイムの再設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux Image Mode における一時的なランタイム再設定とは、稼働中のシステムに対して一時的な調整を行うことを指します。それらの変更内容をイミュータブルのコンテナーイメージに恒久的に組み込む前に、設定を安全にテストし、問題をトラブルシューティングすることができます。
ベースイメージ設定で動的な再設定を実行できます。たとえば、firewall-cmd --permanent コマンドを実行すると、再起動後も変更が永続的に適用されます。
/etc ディレクトリーはデフォルトで永続的です。ツールを使用して変更を加える場合 (例: firewall-cmd --permanent)、システム上の /etc の内容がコンテナーイメージに記述されている内容と異なる可能性があります。
デフォルト設定では、まずベースイメージに変更を加えます。次に、稼働中のシステムを再起動せずに、変更内容をキューに追加します。最後に、既存のシステムに対してメモリー上でのみ変更を適用する書き込みを同時に実行します。
バインドマウントを使用すると、/etc ディレクトリーを一時的に設定できます。この場合、etc ディレクトリーはマシンのローカルルートファイルシステムの一部になります。たとえば、Anaconda キックスタートを使用して静的 IP アドレスを注入すると、アップグレード後もそのアドレスが保持されます。
システムはアップグレード全体にわたって 3 方向マージを適用し、各デプロイメントは /etc の独自のコピーを保持します。
/runディレクトリー-
/runディレクトリーは、システムの再起動時に削除されるように定義されている API ファイルシステムです。/runディレクトリーは一時ファイルに使用します。 - 動的な再設定モデル
- プルモデルでは、ベースイメージまたは特権コンテナー内にコードを直接埋め込むことができます。このコードは、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コマンドによって作成されます。