12.12. Red Hat Enterprise Linux システムロール
Red Hat Enterprise Linux 10.2 で修正された Red Hat Enterprise Linux システムロールに関する問題を確認してください。
networkRHEL システムロールは、名前によるルーティングテーブルの検索に失敗しなくなりました/usr/share/iproute2/rt_tablesファイルには、mainなどの特定の組み込みルーティングテーブル名が含まれています。今回のアップデート以前は、管理者がnetworkRHEL システムロールを使用してルーティングテーブルを変更し、Playbook 内でルーティングテーブルを名前で指定した場合、ロールは以下のエラーで失敗していました。cannot find route table main in /etc/iproute2/rt_tables or /etc/iproute2/rt_tables.d/今回のアップデートにより、
networkRHEL システムロールが、/etc/iproute2/rt_tables内のルーティングテーブルを名前で検索したり、/etc/iproute2/rt_tables.d/ディレクトリー内のファイルを検索したりする際に、エラーが発生しなくなりました。Jira:RHEL-110865[1]
/etc/fstabが見つからない場合でも、storage ロールが失敗しなくなりました今回のアップデート以前は、
/etc/fstabが存在しないシステムでは storage ロールがクラッシュしていました。その結果、ファイルシステムテーブル設定のないシステムでは障害が発生しました。今回のアップデートにより、storage ロールは
/etc/fstabの解析を試みる前に、そのファイルの存在を確認するようになりました。その結果、このファイルが存在しないシステムでは、storage ロールを使用する際にクラッシュが発生しなくなりました。
- 外部設定ファイルは、すべての
sshd_configオプションを正しくオーバーライドします 今回のアップデート以前は、外部設定ファイルが最初に読み込まれていなかったため、
sshd_configファイル内のすべてのオプションをオーバーライドできませんでした。その結果、ユーザーは OpenSSH デーモンの設定が正しく行われないという問題に直面しました。今回のアップデートにより、外部設定ファイルが優先されるようになりました。これにより、ユーザーはsshd_configファイル内のすべてのオプションをオーバーライドできるようになりました。
networkRHEL システムロールは、プロファイル削除時に誤った状態を報告しなくなりました今回のリリース以前は、
networkRHEL システムロールをpersistent_state: absent設定で使用して未定義のプロファイルを削除すると、ロールはループバックインターフェイスプロファイルを削除しようとしていました。システムがこのプロファイルを即座に自動的に再作成するため、Ansible はchanged状態として誤って報告していました。このバグ修正により、ロール内部の変数black_list_namesにループバックデバイスが追加されました。その結果、networkRHEL システムロールは、ループバックインターフェイスを無視するようになりました。これにより不要な変更が防止され、ロールはok状態を報告します。
- サイズを指定せずに LVM ボリュームを作成する際に発生する ZeroDivisionError を修正しました
今回のアップデート以前は、サイズを指定せずに LVM ボリュームを作成すると、ZeroDivisionError が発生する可能性がありました。これは、
blivetモジュールがサイズが指定されていないボリュームをゼロとして扱ったために発生しました。今回のリリースでは、サイズを指定しない場合、ボリュームはプール内の利用可能なすべての領域を使用します。その結果、サイズを指定しなくても LVM ボリュームは正常に作成されます。
nbde_clientロールで、バインディング操作の失敗後も正しくべき等性が維持されるようになりました今回のアップデート以前は、
nbde_clientシステムロールが LUKS 暗号化ボリュームに必要なバインディングを追加できなかった場合、ロールバックメカニズムが正しく機能しない場合がありました。これによりべき等性の問題が生じ、システムが部分的に変更された状態のままになるため、その後のロールの実行が失敗したり、予期しない結果が生じたりするようになりました。今回のアップデートにより、このロールは、バインディング操作を開始する前に LUKS ヘッダーのバックアップを実行するようになりました。操作が失敗した場合、ロールはこのバックアップを使用してヘッダーを元の状態に復元します。その結果、このロールはべき等性を正しく維持し、バインディングの追加に失敗した場合でも、システムの整合性が保たれるようになります。
Jira:RHEL-128428[1]
aideシステムロールは、複数の AIDE バージョンに対応した動的なデータベース設定をサポートします今回のアップデート以前は、
aideシステムロールのテンプレートでは、非推奨となったdatabase変数が使用されていました。これが原因で、RHEL 10.2、RHEL 9.8、CentOS Stream 9 など、Advanced Intrusion Detection Environment (AIDE) バージョン 0.17 以降を実行しているシステムでは、設定解析中に AIDE サービスが失敗していました。今回のアップデートにより、このロールに変数
database_inとaide_versionが導入されました。これにより、インストールされている AIDE のバージョンを動的に検出し、適切な設定構文を自動的に適用できるようになりました。その結果、
aideシステムロールにより、手動での設定変更を必要とせずに、異なるリリース間で一貫したファイル整合性監視が実現します。
blivetにおける空のディスクリストのエラー処理を改善しました今回のアップデート以前は、
blivetモジュールでdisks[0]にアクセスする前に、ディスクリストが空かどうかをチェックするコードが機能していませんでした。その結果、未処理のIndexErrorが原因で Playbook が失敗し、パフォーマンスの低下を招きました。今回のアップデートにより、モジュールは、ディスクリストにアクセスする前にディスクリストが空かどうかを確認します。ディスクが利用できない場合は、例外を発生させるのではなく、明確なエラーメッセージが表示されます。
vpnロールは、管理対象外ホストに対して有効なipsec.confファイルを生成します今回のアップデート以前は、管理対象ホストと管理対象外ホスト間の VPN 接続用の
ipsec.confファイルを生成しようとすると、Ansible Playbook の論理エラーが原因でタスクが失敗していました。今回のアップデートにより、Ansible Playbook はホストとサブネットの情報を正しく参照するようになりました。その結果、
vpnシステムロールは、このシナリオに対して有効なipsec.confファイルを生成します。
selinuxシステムロールは、一部の変数が未定義の場合でも静的インポートをサポートします今回のアップデート以前は、
import_roleディレクティブが使用されている場合、モジュールパスなどの未定義の変数が原因で、テンプレートの展開中にselinuxシステムロールが失敗していました。これは、たとえタスクが false と評価されるwhen条件付きのブロック内にあっても、Ansible がタスクのnameフィールド内の変数を即座に解決しようとするために発生していました。今回のアップデートにより、タスク名には
default(またはd) フィルターが使用されるようになりました。これにより、変数が定義されていない可能性がある場合でもフォールバック値が提供されます。これにより、静的インポートがエラーなしで成功するようになり、include_roleモジュールによる動的な使用においても、変数が存在する場合には詳細なタスク情報が引き続き提供されます。その結果、特定のモジュールパスが定義されていない場合でも、
import_roleディレクティブを使用する Playbook では、selinuxロールが正しく機能します。
firewallRHEL システムロールは、PCI インターフェイス ID ルックアップが正しく機能するように、管理対象ノードに NetworkManager をインストールします以前は、
interface_pci_idパラメーターを使用して、インターフェイスの PCI ID を指定してインターフェイス名を検索したい場合に、NetworkManager がインストールされていない環境では、firewallRHEL システムロールが PCI ID によるインターフェイスの検索を行えず、警告を表示していました。その結果、ロールは、指定されたinterface_pci_id変数を使用してfirewalldサービスを設定することに失敗しました。今回のアップデートにより、NetworkManager はロールによって確実にインストールされ、firewallRHEL システムのロールが期待どおりに動作するようになります。
- Ansible ロールにおけるタスク名の展開に関する問題が解決されました
今回のアップデート以前は、パスが設定されていないモジュールで
import_roleを使用すると、ロールが未定義変数エラーを発行していました。これは、Ansible がwhen条件に関係なく、block内のタスク名にあるテンプレートを展開しようとしたために発生しました。今回のアップデートにより、
dフィルターはこれらの変数にデフォルト値を提供するようになりました。その結果、ロールはimport_roleやパスが定義されていないモジュールでエラーを起こさなくなり、include_roleと共に使用された場合、タスク名に追加のコンテキストを提供し続けます。
- RHEL 7 でのループマウントエラーが解決されました
今回のアップデート以前は、
libblockdev-loopパッケージが欠落していたため、Red Hat Enterprise Linux 7 上でループマウント中にblivetモジュールが未定義の関数を呼び出していました。その結果、ロールは "The function 'bd_loop_get_backing_file' called, but not implemented" というエラーで失敗しました。今回のアップデートにより、
libblockdev-loopパッケージがインストールされ、RHEL 7 でのループマウント中にblivetエラーが発生するのを防ぎます。