11.12. Red Hat Enterprise Linux システムロール
NetworkManager
サービスと NetworkManager
プラグイン間のプロパティーの競合が発生しなくなる
この更新前は、ネットワーク関連のパッケージ、特にワイヤレスインターフェースの変更による更新がある場合でも、RHEL の network
システムロールは NetworkManager
サービスの再起動についてユーザーの同意を求めませんでした。その結果、NetworkManager
サービスと NetworkManager
プラグインの間で競合が発生する可能性がありました。または、NetworkManager
プラグインが正しく実行されませんでした。この問題は、NetworkManager
サービスの再起動にユーザーが同意するかどうかを network
RHEL システムロールに確認させることで修正されました。その結果、前述の状況で、NetworkManager
サービスと NetworkManager
プラグインの間にプロパティーの競合が発生しなくなりました。
Jira:RHEL-34887[1]
ノード属性の鍵と値のペアの複数セットの実装が、他のクラスター設定コンポーネントと一致するようになる
ha_cluster
RHEL システムロールは、各設定項目の鍵と値のペアを 1 つだけサポートします。以前は、ノード属性のセットを複数設定すると、それらのセットが 1 セットにマージされていました。この更新により、ロールは定義した最初のセットのみを使用し、他のセットは無視するようになりました。この動作は、鍵と値のペア構造を使用する他の設定コンポーネントに対して、ロールが鍵と値のペアのセットを複数実装する方法と一致するようになりました。
Jira:RHEL-34886[1]
postgresql
RHEL システムロールは、TLS 証明書と秘密鍵へのパスの設定に失敗しなくなる
postgresql
RHEL システムロールの postgresql_cert_name
変数は、管理対象ノード上の接尾辞なしの TLS 証明書と秘密鍵への基本パスを定義します。この更新前は、ロールは証明書と秘密鍵の内部変数を定義していませんでした。その結果、postgresql_cert_name
を設定すると、Ansible タスクは次のエラーメッセージで失敗しました。
The task includes an option with an undefined variable. The error was: '__pg_server_crt' is undefined. '__pg_server_crt' is undefined
The task includes an option with an undefined variable. The error was: '__pg_server_crt' is undefined. '__pg_server_crt' is undefined
この更新により、ロールはこれらの内部変数を正しく定義し、タスクは PostgreSQL 設定ファイル内の証明書と秘密鍵へのパスを設定します。
Jira:RHEL-67418[1]
bootloader
RHEL システムロールが必要に応じて不足している /etc/default/grub
設定ファイルを生成する
この更新前は、bootloader
RHEL システムロールでは /etc/default/grub
設定ファイルが存在することが想定されていました。場合によっては、たとえば OSTtree システムでは、/etc/default/grub
が存在しないことがあります。その結果、そのロールは予期せず失敗しました。この更新により、ロールは必要に応じてデフォルトのパラメーターを使用して不足しているファイルを生成します。
Jira:RHEL-34881[1]
podman
RHEL システムロールがホストディレクトリーの所有権を再度設定できる
この更新前は、podman
RHEL システムロールは、ホストディレクトリーの所有権を設定するときに、ユーザーとともに become
キーワードを使用していました。その結果、ロールは所有権を適切に設定できませんでした。この更新により、podman
RHEL システムロールは、通常のユーザーに become
を使用しなくなりました。代わりに、root
ユーザーを使用します。その結果、podman
がホストディレクトリーの所有権を設定できます。
この修正を補完するために、次のロール変数が podman
RHEL システムロールに追加されました。
-
podman_subuid_info
(ディクショナリー):/etc/subuid
ファイルからロールが使用する情報を公開します。この情報は、ホストディレクトリーの所有者情報を適切に設定するために必要です。 -
podman_subgid_info
(ディクショナリー):/etc/subgid
ファイルからロールが使用する情報を公開します。この情報は、ホストディレクトリーのグループ情報を適切に設定するために必要です。
新しく追加された変数の詳細は、/usr/share/doc/rhel-system-roles/podman/
ディレクトリー内のリソースを参照してください。
Jira:RHEL-34888[1]
適切なユーザーに対しては、linger 機能をキャンセルできる
kube ファイルまたは Quadlet ファイルから設定項目の指示リストを処理するときに、podman
RHEL システムロールはリスト全体に関連付けられたユーザー ID を誤って使用していました。リスト項目に関連付けられたユーザー ID を使用して、linger ファイル名を生成しませんでした。その結果、linger ファイルが作成されなかったため、必要に応じて podman
RHEL システムロールは実際のユーザーの linger 機能をキャンセルできませんでした。この更新により、podman
は正しいユーザー名を使用して linger ファイル名を作成します。その結果、適切なユーザーに対しては、linger 機能をキャンセルできるようになります。
Jira:RHEL-34889[1]
storage
RHEL システムロールが再びべき等性を持つようになる
storage
RHEL システムロールは、既存のデバイスのサイズを誤って計算する場合があります。その結果、同じ Playbook を変更せずに再度実行すると、ロールはエラーなしで通過するのではなく、すでに正しいサイズになっているデバイスのサイズ変更を試行するようになりました。この更新では、サイズの計算が修正されました。その結果、ロールはデバイスのサイズが Playbook で指定されているサイズにすでに設定されていることを正しく識別し、サイズ変更を試行しなくなりました。
Jira:RHEL-34895[1]
既存の Stratis プールを持つシステムで storage
RHEL システムロールを実行すると、期待どおりに動作する
この更新前は、storage
RHEL システムロールは、既存のデバイスとデバイスフォーマットを処理できませんでした。これにより、Stratis 形式が Playbook で指定された設定に準拠しているかどうかを確認するときに、既存の Stratis プールを持つシステムでロールが失敗していました。その結果、Playbook はエラーで失敗しましたが、Stratis プール自体は破損したり変更されたりしませんでした。この更新により、storage
RHEL システムロールが、ラベル付けをサポートしていない Stratis デバイスやその他の形式でも正しく動作するようになります。その結果、既存の Stratis プールを持つシステムで Playbook を実行しても失敗しなくなりました。
Jira:RHEL-34907[1]
imuxsock
入力タイプの name
パラメーターを設定できない
この更新前は、logging
RHEL システムロールによって、imuxsock
入力タイプの名前パラメーターが誤って設定されていました。その結果、この入力タイプは name
パラメーターをサポートしておらず、管理対象ノード上の rsyslog
ユーティリティーは、…parameter 'name' not known — typo in config file?…
というエラーを出力しました。この更新により、logging
RHEL システムロールが修正され、name
パラメーターが imuxsock
入力タイプに関連付けられなくなります。
RHEL 10 および RHEL 9 UEFI 管理対象ノード上の GRUB2 は、パスワードを正しく要求する
この更新前は、bootloader
RHEL システムロールは、UEFI セキュアブート機能を備えた RHEL 10 および RHEL 9 を実行する管理対象ノード上の /boot/efi/EFI/redhat/user.cfg
ファイルにパスワード情報を誤って配置していました。正しいロケーションは /boot/grub2/user.cfg
ファイルでした。その結果、管理対象ノードを再起動してブートローダーエントリーを変更したときに、GRUB2 がパスワードの入力を要求しませんでした。この更新により、ソースコード内で user.cfg
のパスを /boot/grub2/
に設定することで問題が修正されました。UEFI セキュアブート管理対象ノードでオペレーティングシステムを再起動してブートローダーエントリーを変更すると、GRUB2 によってパスワードの入力が求められます。
Jira:RHEL-40759[1]
podman
を使用して Quadlet 定義のネットワークを削除すると、カスタム NetworkName
ディレクティブに関係なく機能する
ネットワークを削除するときに、podman
RHEL システムロールは、ネットワーク名に "systemd- + name of the Quadlet file" 構文を使用していました。その結果、Quadlet ファイルに異なる NetworkName
ディレクティブが含まれていた場合、削除は失敗しました。この更新により、podman
ソースコードが更新され、削除するネットワークの名前として「Quadlet ファイル名 + そのファイルの NetworkName
ディレクティブ」が使用されるようになりました。その結果、podman
RHEL システムロールを使用して Quadlet ファイルで定義されたネットワークを削除すると、Quadlet ファイル内のカスタム NetworkName
ディレクティブの有無にかかわらず機能します。
podman
RHEL システムロールが必要に応じて新しいシークレットを作成する
podman
RHEL システムロールは、podman_secrets
ロール変数の skip_existing: true
オプションを使用した場合に、同じ名前のシークレットがすでに存在するかどうかを誤ってチェックしませんでした。その結果、そのオプションを使用した場合、ロールは新しいシークレットを作成しませんでした。この更新により、skip_existing: true
を使用する場合に、既存のシークレットを確認するように podman
RHEL システムロールが修正されます。その結果、ロールは、新しいシークレットが存在しない場合に適切に作成します。逆に、skip_existing: true
を使用すると、同じ名前のシークレットは作成されません。
Jira:RHEL-40795[1]
Quadlet ユニットファイル内のネットワークユニットが適切にクリーンアップされる
podman
RHEL システムロールは、Quadlet ユニットファイルの [Network]
セクションで定義されたネットワークユニットを正しく管理していませんでした。その結果、ネットワークユニットは停止および無効化されず、それらのユニットが適切にクリーンアップされないため、後続の実行は失敗します。この更新により、podman
は停止や削除など [Network]
ユニットを管理するようになりました。その結果、Quadlet ユニットファイル内の [Network]
ユニットが適切にクリーンアップされます。
Jira:RHEL-50104[1]
podman
RHEL システムロールが subgid
値を正しく検索するようになる
下位グループ ID (subgid
) は、非 root ユーザーに割り当てられたグループ ID 値の範囲です。これらの値を使用すると、ホストシステムと比較してコンテナー内で異なるグループ ID を持つプロセスを実行できます。この更新前は、podman
RHEL システムロールは、ユーザー名ではなくグループ名を使用して subgid
値を誤った形で検索していました。その結果、ユーザー名とグループ名の違いにより、podman
は subgid
値を検索できませんでした。この更新により、podman
が subgid
値を正しく検索するように修正され、このシナリオで問題が発生しなくなりました。
Jira:RHEL-57100[1]
certificate
RHEL システムロールは、発行された証明書に秘密鍵がない場合にエラーを正しく報告する
証明書の秘密鍵が削除されると、管理対象ノード上の certmonger
ユーティリティーが無限ループに入りました。その結果、秘密鍵が削除された証明書を再発行すると、コントロールノード上の certificate
RHEL システムロールが応答しなくなりました。この更新により、certificate
RHEL システムロールは処理を停止し、修正手順を含むエラーメッセージが表示されます。その結果、説明したシナリオで certificate
が応答しなくなることはなくなりました。
Jira:RHEL-70536[1]
変更が適用された場合、firewall
RHEL システムロールが changed: True
を報告する
Playbook の処理中に、Playbook 内の interface
変数と管理対象ノード上の既存のネットワークインターフェイスを使用すると、firewall
RHEL システムロールの firewall_lib.py
モジュールによって changed
メッセージが False
に置き換えられていました。その結果、変更が行われた場合でも firewall
は changed: False
メッセージを報告し、forward_port
変数の内容は永続的に保存されませんでした。この更新により、firewall
RHEL システムロールは、changed
値が False
にリセットされないようにします。その結果、ロールは変更があった場合に changed: True
を報告し、forward_port
の内容は永続的に保存されます。
Jira:RHEL-67412[1]
podman
RHEL システムロールが、run_as_user
変数の使用時にシークレットの処理に失敗しなくなる
この更新前は、ユーザー情報が不足しているため、podman
RHEL システムロールは、run_as_user
変数を使用して特定のユーザーに指定されたシークレットを処理できませんでした。これにより、run_as_user
が設定されているシークレットを処理しようとしたときにエラーが発生しました。この問題は修正され、podman
RHEL システムロールは、run_as_user
変数を使用して特定のユーザーに指定されたシークレットを正しく処理するようになりました。
Jira:RHEL-73443[1]
cockpit
RHEL システムロールが、ワイルドカードパターンに一致するすべての cockpit
関連パッケージをインストールする
この更新前は、cockpit
RHEL システムロールを通じて使用される dnf
モジュールは、cockpit
関連のすべてのパッケージをインストールしませんでした。その結果、要求されたパッケージの一部はインストールされませんでした。この更新により、cockpit
RHEL システムロールのソースコードが変更され、アスタリスクワイルドカードパッケージ名と除外するパッケージのリストを使用して dnf
モジュールを直接使用するようになりました。その結果、ロールはワイルドカードパターンに一致するすべての要求されたパッケージを正しくインストールします。
Jira:RHEL-45944[1]
sshd
RHEL システムロールが 2 番目の sshd
サービスを正しく設定できる
sshd
RHEL システムロールを実行してマネージドノード上の 2 番目の sshd
サービスを設定すると、sshd_config_file
ロール変数を指定しなかった場合、エラーが発生しました。その結果、Playbook は失敗し、sshd
サービスが正しく設定されなくなりました。この問題を解決するために、メイン設定ファイルの導出が改善されました。また、この問題を回避するために、/usr/share/doc/rhel-system-roles/sshd/
ディレクトリー内のドキュメントリソースの内容を明確にしました。その結果、上記のシナリオで説明したように 2 番目の sshd
サービスを設定すると、期待どおりに動作します。
Jira:RHEL-34879[1]
network
RHEL システムロールが永続的な MAC アドレスの一致を優先する
以下の条件がすべて満たされた場合:
- ネットワーク接続が、親接続および Virtual Local Area Network (VLAN) 接続の設定のために、インターフェイス名と Media Access Control (MAC) アドレスの両方を指定した場合。
- 物理インターフェイスの永久 MAC アドレスと現行 MAC アドレスが同一な場合。
- ネットワーク設定が複数回適用された場合。
network
RHEL システムロールは、ユーザーが指定した MAC アドレスを、sysfs
仮想ファイルシステムの永続的な MAC アドレスまたは現行 MAC アドレスと比較しました。その後、インターフェイス名がユーザーが指定したものと異なる場合でも、ロールは現行 MAC との一致を有効として扱いました。その結果、"no such interface exists" というエラーが発生しました。この更新により、link_info_find()
メソッドは、永続的な MAC アドレスが有効かつ利用可能な場合に、一致するリンクを優先します。永続的な MAC が利用できない場合 (None または "00:00:00:00:00:00")、このメソッドは現行 MAC アドレスとの一致にフォールバックします。その結果、この変更により、永続アドレスが優先されると同時に、永続アドレスのないインターフェイスに対する信頼性の高いフォールバックメカニズムが維持されるため、MAC アドレスの一致がより堅牢になります。
Jira:RHEL-73442[1]
新しい sshd_allow_restart
変数により、必要に応じて sshd
サービスを再起動できるようになる
この更新前は、sshd
RHEL システムロールは、必要なときに管理対象ノード上の sshd
サービスを再起動していませんでした。その結果、`/etc/sysconfig/` ディレクトリーの設定ファイルと環境ファイルに関連する一部の変更は適用されませんでした。この問題を解決するために、必要に応じて管理対象ノード上の sshd
サービスを再起動するための sshd_allow_restart
(ブール値、デフォルトは true
) 変数が導入されました。その結果、sshd
RHEL システムロールはすべての変更を正しく適用し、sshd
サービスが実際にそれらの変更を使用するようになりました。
Jira:RHEL-73439[1]
ansible-doc
コマンドが redhat.rhel_system_roles
コレクションのドキュメントを再度提供する
この更新前は、vpn
RHEL システムロールに内部 Ansible フィルター vpn_ipaddr
のドキュメントは含まれていませんでした。その結果、ansible-doc
コマンドを使用して redhat.rhel_system_roles
コレクションのドキュメントをリスト表示すると、エラーが発生しました。この更新により、vpn
RHEL システムロールには、vpn_ipaddr
フィルター用に正しい形式の正しいドキュメントが含まれるようになりました。その結果、ansible-doc
はエラーをトリガーせず、正しいドキュメントを提供します。
Jira:RHEL-67421[1]
storage
RHEL システムロールが論理ボリュームのサイズを正しく変更する
storage
RHEL システムロールの grow_to_fill
機能を使用して、基盤となる仮想ディスクのサイズを変更した後、LVM 物理ボリュームのサイズを自動的に変更したときに、物理ボリュームが最大サイズに変更されませんでした。その結果、既存の論理ボリュームのサイズを変更したり、新しい追加の論理ボリュームを作成したりするときに、ストレージの空き領域の一部が利用できず、storage
RHEL システムロールが失敗しました。この更新により、ソースコードの問題が修正され、grow_to_fill
を使用するときにロールが常に物理ボリュームを最大サイズに変更するようになります。
Jira:RHEL-76504[1]
storage
RHEL システムロールが、VDO を備えた RHEL 10 管理対象ノードで期待どおりに実行されるようになる
この更新前は、Virtual Data Optimizer (VDO) を使用する RHEL 10 管理対象ノードで、blivet
モジュールに kmod-kvdo
パッケージが必要でした。しかし、kmod-kvdo
のインストールに失敗し、その結果、storage
RHEL システムロールも失敗しました。この問題の修正により、RHEL 10 の管理対象ノードでは kmod-kvdo
が必須パッケージではなくなりました。その結果、RHEL 10 の管理対象ノードが VDO を使用する場合でも、storage
に障害が発生しなくなりました。
Jira:RHEL-81963[1]