Red Hat Enterprise Linux (RHEL) システムロール
RHEL システムロールの概要
RHEL システムロールは、Red Hat Enterprise Linux の複数のリリースを自動化および管理するための、安定した一貫性のある設定インターフェイスを提供する Ansible ロールおよびモジュールのコレクションです。この取り組みは、Linux System Roles のアップストリームプロジェクトの開発に基づいています。SAP 関連ロールの場合は、SAP LinuxLab のアップストリームプロジェクトの開発に基づいています。
以下のロールが次のように提供およびサポートされています。
ロール名 | 説明 | リモートホスト管理 | コントロールノード | ロールの初期リリース |
---|---|---|---|---|
セキュリティー関連のロール | ||||
selinux | SELinux | RHEL 6、7、8、9 | RHEL 8、9 | RHEL 7.6/8.0 |
nbde_client | ネットワークバウンドディスク暗号化クライアント | RHEL 7、8、9 | RHEL 8、9 | RHEL 7.9/8.3 |
nbde_server | ネットワークバウンドディスク暗号化サーバー | RHEL 7、8、9 | RHEL 8、9 | RHEL 7.9/8.3 |
certificate | 証明書の発行と更新 | RHEL 7、8、9 | RHEL 8、9 | RHEL 7.9/8.3 |
tlog | ターミナルセッションの記録 | RHEL 8、9 | RHEL 8、9 | RHEL 7.9/8.3 |
ssh | Secure Shell (SSH) クライアント | RHEL 6、7、8、9 | RHEL 8、9 | RHEL 7.9/8.4 |
sshd | Secure Shell (SSH) サーバー | RHEL 6、7、8、9 | RHEL 8、9 | RHEL 7.9/8.4 |
crypto_policies | システム全体の暗号化ポリシー | RHEL 8、9 | RHEL 8、9 | RHEL 7.9/8.4 |
vpn | 仮想プライベートネットワーク | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.5 |
firewall | ファイアウォール | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.6/9.0 |
keylime_server | Keylime サーバー | RHEL 9.1 以降 | RHEL 8、9 | RHEL 8.9/9.3 |
fapolicyd | Fapolicyd | RHEL 8、9 | RHEL 8、9 | RHEL 8.10/9.4 |
設定関連のロール | ||||
timesync | 時刻同期 | RHEL 6、7、8、9 | RHEL 8、9 | RHEL 7.6/8.0 |
network | ネットワーク | RHEL 6、7、8、9 | RHEL 8、9 | RHEL 7.6/8.0 |
kdump | カーネルダンプ | RHEL 6、7、8、9 | RHEL 8、9 | RHEL 7.6/8.0 |
storage | ストレージ | RHEL 7、8、9 | RHEL 8、9 | RHEL 7.6/8.1 |
postfix | Postfix (メール転送エージェント) | RHEL 6、7、8、9 | RHEL 8、9 | RHEL 7.6/8.0 |
kernel_settings | カーネル設定 | RHEL 7、8、9 | RHEL 8、9 | RHEL 7.9/8.3 |
logging | ロギング (rsyslog) | RHEL 7、8、9 | RHEL 8、9 | RHEL 7.9/8.3 |
metrics | メトリクス (Performance Co-Pilot) | RHEL 6、7、8、9 | RHEL 8、9 | RHEL 7.9/8.3 |
ha_cluster | 高可用性クラスタリング | RHEL 8、9 | RHEL 8、9 | RHEL 7.9/8.4 |
cockpit | Web コンソール | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.6/9.0 |
podman | Podman | RHEL 8.6 以降、9 | RHEL 8、9 | RHEL 8.8/9.2 |
rhc | リモートホスト設定 | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.8/9.2 |
journald | Systemd-journald | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.8/9.2 |
ad_integration | Microsoft Active Directory との統合 | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.8/9.2 |
systemd | systemd | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.9/9.3 |
snapshot | スナップショット | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.10/9.4 |
bootloader | ブートローダー | RHEL 7、8、9 | RHEL 8、9 | RHEL 8.10/9.4 |
ワークロード関連のロール | ||||
microsoft.sql.server1 | Microsoft SQL Server | RHEL 7、8 | RHEL 8、9 | RHEL 8.5 |
sap_general_preconfigure2 | SAP の一般的な事前設定 | RHEL 7.6 以降、8、9 | RHEL 8、9 | RHEL 7.7/8.2 |
sap_netweaver_preconfigure2 | SAP NetWeaver の事前設定 | RHEL 7.6 以降、8、9 | RHEL 8、9 | RHEL 7.7/8.2 |
sap_hana_preconfigure2 | SAP HANA の事前設定 | RHEL 7.6 以降、8、9 | RHEL 8、9 | RHEL 7.7/8.2 |
sap_hana_install2 | SAP HANA のインストール | RHEL 7.6 以降、8、9 | RHEL 8、9 | RHEL 8.6/9.0 |
sap_ha_install_hana_hsr2 (テクノロジープレビュー*) | HANA システムレプリケーションのセットアップ | RHEL 7.6 以降、8、9 | RHEL 8、9 | RHEL 8.6.z/9.0.z |
sap_ha_install_pacemaker2 (テクノロジープレビュー*) | RHEL HA Pacemaker クラスターのセットアップ | RHEL 7.6 以降、8、9 | RHEL 8、9 | RHEL 8.6.z/9.0.z |
sap_ha_prepare_pacemaker2 (テクノロジープレビュー*) | RHEL HA クラスターの事前設定 | RHEL 7.6 以降、8、9 | RHEL 8、9 | RHEL 8.6.z/9.0.z |
sap_ha_set_hana2 (テクノロジープレビュー*) | RHEL HA solutions for SAP HANA のセットアップ | RHEL 7.6 以降、8、9 | RHEL 8、9 | RHEL 8.6.z/9.0.z |
postgresql | PostgreSQL データベース | RHEL 8、9 | RHEL 8、9 | RHEL 8.9/9.3 |
* テクノロジープレビュー ステータスのロールは、テストの結果安定していると判断されています。ただし、インターフェイス (ロール入力) が将来的に更新され、現在の状態と互換性がなくなる可能性があります。追加のテクノロジープレビューコンテンツは、アップストリームプロジェクトおよび Ansible Galaxy の各プロジェクトに存在します。
1. microsoft.sql.server ロールは、ansible-collection-microsoft-sql パッケージで利用可能です。
2. SAP 関連のシステムロールは、RHEL for SAP Solutions サブスクリプションの一部として提供される rhel-system-roles-sap パッケージで利用可能です。
RHEL システムロールは、コントロールノードと呼ばれるセントラルノード (Ansible Automation Platform、Red Hat Satellite、または RHEL 9 または RHEL 8 ホスト) からインストールおよび実行されます。 コントロールノードは、インベントリーで定義された RHEL ホストのリストに接続し、それらの設定を実行します。 コントロールノードで RHEL の最新のメジャーリリースを使用し、rhel-system-roles RPM または Red Hat Automation Hub から最新バージョンのロールを使用することを推奨します。 RHEL システムロールおよび Ansible パッケージを管理/設定対象のシステムにインストールする必要はありません。
RHEL システムロールは、次の方法による提供がサポートされています。
- RHEL 9 または RHEL 8 Application Streams リポジトリー内の RPM パッケージとして
- Red Hat Automation Hub でサポートされるコレクションとして
注記 1: RHEL サブスクリプションは、RHEL システムロールの実装および Ansible Core (RHEL 9.0/8.6 以降) との互換性をサポートします。Application Streams リポジトリー内の Ansible Core パッケージは、RHEL システムロールや Red Hat 製品ポートフォリオの他の階層分けされた製品を使用するにあたっての利便性のためにアクセス可能となっています。 ただし、RHEL サブスクリプションには、限定サポート範囲外の Ansible Core のサポートは 含まれません (限定サポート範囲の詳細は、以下の注記 2 を参照してください)。
注記 2: RHEL での Ansible Core の限定サポート範囲に関する詳細は、Scope of support for the Ansible Core package included in the RHEL 9 and RHEL 8.6 and later AppStream repositories を参照してください。 追加情報は、Top Support Policies for Red Hat Ansible Automation を参照してください。
注記 3: RHEL システムロールには、システムロールが内部的に使用する Ansible モジュールが含まれます (たとえば、RHC ロールは community.general.redhat_subscription モジュールを内部的に利用します)。 RHEL システムロールに含まれるこれらのモジュールは、RHEL システムロールによる内部的な使用のみを目的としており、Red Hat はこれらのモジュールを直接使用することをサポートしていません。 ただし、システムロールでの内部的な使用はサポートしています。 RHEL システムロールの使用時に問題が発生した場合は、Red Hat サポートにお問い合わせください。問題がモジュールに関連する場合、Red Hat は Red Hat Enterprise Linux のライフサイクル の記載に沿ってモジュールをサポートします。
スタートガイド
RHEL 9.x および 8.6 以降: RHEL システムロールと Ansible Core のインストール
これまで Ansible Engine がインストールされていなかった RHEL 9 システムおよび RHEL 8.6 以降のシステムでは、次のコマンドを実行して、Application Streams リポジトリーに含まれる RHEL システムロールと Ansible Core をインストールします。
# dnf install rhel-system-roles ansible-core
RHEL 8.6 にアップグレードされ、Ansible Engine がインストールされているシステムの場合、システムを Ansible Engine から Ansible Core に移行する手順については Using Ansible in RHEL 8.6 and later を参照してください。
ドキュメント
追加情報については、Red Hat Enterprise Linux 9 のドキュメント RHEL システムロールを使用したシステム管理の自動化 を参照してください。
デフォルトでは、rhel-system-roles
パッケージは次の場所にインストールされます。
-
ドキュメント
/usr/share/doc/rhel-system-roles-<version>/SUBSYSTEM/
-
Ansible ロール
/usr/share/ansible/roles/rhel-system-roles.SUBSYSTEM/
ここで、SUBSYSTEM
は、個々のロールを管理するサブシステムの名前です。
例としては、network、timesync、またはサポートされるその他のサブシステムなどがあります。詳細は、RHEL システムロールの概要 を参照してください。 各サブシステムロールには、ロールの使用方法とサポートされているパラメーター値が記載された README ファイルが含まれます。また、対応する README が linux-system-roles Ansible Galaxy ランディングスペースにあります。
rhel-system-roles.network ロールの使用例
この例では、以下を前提としています。
- 通常、Ansible はすべてのシステムにインストールされるのではなく、Ansible を介して他のシステムを管理することを目的とした、Ansible 管理ノードまたはコントロールノードとして指定された単一のシステムにインストールされます。
- この例は、Ansible コントロールノードとして使用される RHEL 7.5 システムから実行されます。
- rhel7.5-test というホスト名のターゲットまたはクライアントテストシステムです。
- rhel7.5-test には、アクセスするためのプライマリーネットワークインターフェイス (eth0) と、この例のためのセカンダリーインターフェイス (eth1) があります。
- コントロールノード上の Ansible インベントリーファイル /etc/ansible/hosts に、rhel7.5-test FQDN または IP アドレスのいずれかが追加されています。
- テスト Playbook を実行しているコントロールノードのユーザー ID には、rhel7.5-test に対する ssh アクセスと
sudo
機能があります。 あるいは、-u
オプションを使用して、この機能を持つユーザーを指定することもできます。 - Ansible の使用方法の詳細は、Ansible documentation にある Ansible の Getting Started または Quick Start ビデオを参照してください。
-
テキストエディターを使用して、次のような内容を含むファイルを作成します。
$ vim example-network-playbook.yml --- - hosts: rhel7.5-test vars: network_connections: - name: DBnic state: up type: ethernet interface_name: eth1 autoconnect: yes ip: dhcp4: yes auto6: no roles: - role: rhel-system-roles.network
-
マシンにアクセスできるかどうかをテストします。 アクセスできない場合は、Ansible がリモートシステムにアクセスできるようにする方法に関する Ansible のドキュメントを参照してください。
$ ansible -m ping rhel7.5-test rhel7.5-test | SUCCESS => { "changed": false, "ping": "pong" }
-
Ansible ファクトをクエリーして、ゲストのネットワーク設定を確認します。
$ ansible rhel7.5-test -m setup -a 'gather_subset=network filter=ansible_interfaces' rhel7.5-test | SUCCESS => { "ansible_facts": { "ansible_interfaces": [ "lo", "eth1", "eth0" ] }, "changed": false }
-
Ansible ファクトをクエリーして、eth1 の特性を確認します。
$ ansible rhel7.5-test -m setup -a 'gather_subset=network filter=ansible_eth1' rhel7.5-test | SUCCESS => { "ansible_facts": { "ansible_eth1": { "active": true, "device": "eth1", "features": { "busy_poll": "off [fixed]", "fcoe_mtu": "off [fixed]", "generic_receive_offload": "on", "generic_segmentation_offload": "on", "highdma": "on [fixed]", "hw_tc_offload": "off [fixed]", "l2_fwd_offload": "off [fixed]", "large_receive_offload": "off [fixed]", "loopback": "off [fixed]", "netns_local": "off [fixed]", "ntuple_filters": "off [fixed]", "receive_hashing": "off [fixed]", "rx_all": "off [fixed]", "rx_checksumming": "on [fixed]", "rx_fcs": "off [fixed]", "rx_vlan_filter": "on [fixed]", "rx_vlan_offload": "off [fixed]", "rx_vlan_stag_filter": "off [fixed]", "rx_vlan_stag_hw_parse": "off [fixed]", "scatter_gather": "on", "tcp_segmentation_offload": "on", "tx_checksum_fcoe_crc": "off [fixed]", "tx_checksum_ip_generic": "on", "tx_checksum_ipv4": "off [fixed]", "tx_checksum_ipv6": "off [fixed]", "tx_checksum_sctp": "off [fixed]", "tx_checksumming": "on", "tx_fcoe_segmentation": "off [fixed]", "tx_gre_segmentation": "off [fixed]", "tx_gso_robust": "off [fixed]", "tx_ipip_segmentation": "off [fixed]", "tx_lockless": "off [fixed]", "tx_mpls_segmentation": "off [fixed]", "tx_nocache_copy": "off", "tx_scatter_gather": "on", "tx_scatter_gather_fraglist": "off [fixed]", "tx_sctp_segmentation": "off [fixed]", "tx_sit_segmentation": "off [fixed]", "tx_tcp6_segmentation": "on", "tx_tcp_ecn_segmentation": "on", "tx_tcp_segmentation": "on", "tx_udp_tnl_segmentation": "off [fixed]", "tx_vlan_offload": "off [fixed]", "tx_vlan_stag_hw_insert": "off [fixed]", "udp_fragmentation_offload": "on", "vlan_challenged": "off [fixed]" }, "macaddress": "52:54:00:e1:c2:4c", "module": "virtio_net", "mtu": 1500, "pciid": "virtio4", "promisc": false, "type": "ether" } }, "changed": false }
-
サンプル Playbook を実行します。 注記: “アクティベーション待機” 機能はまだ実装されていないため、現時点では警告メッセージを無視しても問題ありません。
$ ansible-playbook -l rhel7.5-test example-network-playbook.yml PLAY [rhel7.5-test] ********************************************************************* TASK [Gathering Facts] ********************************************************* ok: [rhel7.5-test] TASK [rhel-system-roles.network : Check which services are running] ************ ok: [rhel7.5-test] TASK [rhel-system-roles.network : Check which packages are installed] ********** ok: [rhel7.5-test] TASK [rhel-system-roles.network : Install packages] **************************** skipping: [rhel7.5-test] TASK [rhel-system-roles.network : Enable network service] ********************** ok: [rhel7.5-test] TASK [rhel-system-roles.network : Print network provider] ********************** ok: [rhel7.5-test] => { "msg": "Using network provider: nm" } TASK [rhel-system-roles.network : Configure networking connection profiles] **** [WARNING]: [003] <info> #0, state:up persistent_state:present, 'DBnic': add connection DBnic, b62a7ea6-f1a4-408a-843e-ea292aa58b44 [WARNING]: [004] <info> #0, state:up persistent_state:present, 'DBnic': up connection DBnic, b62a7ea6-f1a4-408a-843e-ea292aa58b44 (is-modified) changed: [rhel7.5-test] TASK [rhel-system-roles.network : Re-test connectivity] ************************ ok: [rhel7.5-test] PLAY RECAP ********************************************************************* rhel7.5-test : ok=7 changed=1 unreachable=0 failed=0
-
再度クエリーを実行して、eth1 がオンラインになっており、IP アドレスが割り当てられていることを確認します。
$ ansible rhel7.5-test -m setup -a 'gather_subset=network filter=ansible_eth1' rhel7.5-test | SUCCESS => { "ansible_facts": { "ansible_eth1": { "active": true, "device": "eth1", "features": { "busy_poll": "off [fixed]", "fcoe_mtu": "off [fixed]", "generic_receive_offload": "on", "generic_segmentation_offload": "on", "highdma": "on [fixed]", "hw_tc_offload": "off [fixed]", "l2_fwd_offload": "off [fixed]", "large_receive_offload": "off [fixed]", "loopback": "off [fixed]", "netns_local": "off [fixed]", "ntuple_filters": "off [fixed]", "receive_hashing": "off [fixed]", "rx_all": "off [fixed]", "rx_checksumming": "on [fixed]", "rx_fcs": "off [fixed]", "rx_vlan_filter": "on [fixed]", "rx_vlan_offload": "off [fixed]", "rx_vlan_stag_filter": "off [fixed]", "rx_vlan_stag_hw_parse": "off [fixed]", "scatter_gather": "on", "tcp_segmentation_offload": "on", "tx_checksum_fcoe_crc": "off [fixed]", "tx_checksum_ip_generic": "on", "tx_checksum_ipv4": "off [fixed]", "tx_checksum_ipv6": "off [fixed]", "tx_checksum_sctp": "off [fixed]", "tx_checksumming": "on", "tx_fcoe_segmentation": "off [fixed]", "tx_gre_segmentation": "off [fixed]", "tx_gso_robust": "off [fixed]", "tx_ipip_segmentation": "off [fixed]", "tx_lockless": "off [fixed]", "tx_mpls_segmentation": "off [fixed]", "tx_nocache_copy": "off", "tx_scatter_gather": "on", "tx_scatter_gather_fraglist": "off [fixed]", "tx_sctp_segmentation": "off [fixed]", "tx_sit_segmentation": "off [fixed]", "tx_tcp6_segmentation": "on", "tx_tcp_ecn_segmentation": "on", "tx_tcp_segmentation": "on", "tx_udp_tnl_segmentation": "off [fixed]", "tx_vlan_offload": "off [fixed]", "tx_vlan_stag_hw_insert": "off [fixed]", "udp_fragmentation_offload": "on", "vlan_challenged": "off [fixed]" }, "ipv4": { "address": "192.168.122.216", "broadcast": "192.168.122.255", "netmask": "255.255.255.0", "network": "192.168.122.0" }, "ipv6": [ { "address": "fe80::5054:ff:fee1:c24c", "prefix": "64", "scope": "link" } ], "macaddress": "52:54:00:e1:c2:4c", "module": "virtio_net", "mtu": 1500, "pciid": "virtio4", "promisc": false, "type": "ether" } }, "changed": false }
その他の例
各ロールには、それぞれのドキュメントディレクトリーの下に独自のサンプル Playbook があります (上記参照)。
Comments