5.10. Red Hat Enterprise Linux システムロール
新しい sshd_allow_restart 変数により、必要に応じて sshd サービスを再起動できるようになる
この更新前は、sshd RHEL システムロールは、必要なときに管理対象ノード上の sshd サービスを再起動していませんでした。その結果、`/etc/sysconfig/` ディレクトリーの設定ファイルと環境ファイルに関連する一部の変更は適用されませんでした。この問題を解決するために、必要に応じて管理対象ノード上の sshd サービスを再起動するための sshd_allow_restart (ブール値、デフォルトは true) 変数が導入されました。その結果、sshd RHEL システムロールはすべての変更を正しく適用し、sshd サービスが実際にそれらの変更を使用するようになりました。
podman RHEL システムロールが、run_as_user 変数の使用時にシークレットの処理に失敗しなくなる
この更新前は、ユーザー情報が不足しているため、podman RHEL システムロールは、run_as_user 変数を使用して特定のユーザーに指定されたシークレットを処理できませんでした。これにより、run_as_user が設定されているシークレットを処理しようとしたときにエラーが発生しました。この問題は修正され、podman RHEL システムロールは、run_as_user 変数を使用して特定のユーザーに指定されたシークレットを正しく処理するようになりました。
変更が適用された場合、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 の内容は永続的に保存されます。
certificate RHEL システムロールは、発行された証明書に秘密鍵がない場合にエラーを正しく報告する
証明書の秘密鍵が削除されると、管理対象ノード上の certmonger ユーティリティーが無限ループに入りました。その結果、秘密鍵が削除された証明書を再発行すると、コントロールノード上の certificate RHEL システムロールが応答しなくなりました。この更新により、certificate RHEL システムロールは処理を停止し、修正手順を含むエラーメッセージが表示されます。その結果、説明したシナリオで certificate が応答しなくなることはなくなりました。
Jira:RHEL-13333[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 設定ファイル内の証明書と秘密鍵へのパスを設定します。
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 アドレスの一致がより堅牢になります。
ansible-doc コマンドが redhat.rhel_system_roles コレクションのドキュメントを再度提供する
この更新前は、vpn RHEL システムロールに内部 Ansible フィルター vpn_ipaddr のドキュメントは含まれていませんでした。その結果、ansible-doc コマンドを使用して redhat.rhel_system_roles コレクションのドキュメントをリスト表示すると、エラーが発生しました。この更新により、vpn RHEL システムロールには、vpn_ipaddr フィルター用に正しい形式の正しいドキュメントが含まれるようになりました。その結果、ansible-doc はエラーをトリガーせず、正しいドキュメントを提供します。
storage RHEL システムロールが論理ボリュームのサイズを正しく変更する
storage RHEL システムロールの grow_to_fill 機能を使用して、基盤となる仮想ディスクのサイズを変更した後、LVM 物理ボリュームのサイズを自動的に変更したときに、物理ボリュームが最大サイズに変更されませんでした。その結果、既存の論理ボリュームのサイズを変更したり、新しい追加の論理ボリュームを作成したりするときに、ストレージの空き領域の一部が利用できず、storage RHEL システムロールが失敗しました。この更新では、ソースコードの問題が修正され、grow_to_fill を使用するときにロールが常に物理ボリュームを最大サイズに変更するようになります。
Jira:RHEL-73244[1]
storage RHEL システムロールが、VDO を備えた RHEL 管理対象ノードで期待どおりに実行されるようになりました。
この更新前は、Virtual Data Optimizer (VDO) を使用する RHEL 管理対象ノードで、blivet モジュールに kmod-kvdo パッケージが必要でした。しかし、kmod-kvdo のインストールに失敗し、その結果、storage RHEL システムロールも失敗しました。この問題の修正により、RHEL の管理対象ノードでは kmod-kvdo が必須パッケージではなくなりました。その結果、RHEL の管理対象ノードが VDO を使用する場合でも、storage に障害が発生しなくなりました。
Jira:RHEL-82160[1]