第2章 RHEL システムロールを使用するためのコントロールノードと管理対象ノードの準備
個々の RHEL システムロールを使用してサービスと設定を管理するには、その前に、コントロールノードと管理対象ノードを準備する必要があります。
2.1. RHEL 8 でのコントロールノードの準備
RHEL システムロールを使用する前に、コントロールノードを設定する必要があります。次に、このシステムは、Playbook に従ってインベントリーから管理対象ホストを設定します。
前提条件
RHEL 8.6 以降がインストールされている。RHEL のインストールの詳細は、インストールメディアから RHEL を対話的にインストールする を参照してください。
注記RHEL 8.5 以前のバージョンでは、Ansible パッケージは Ansible Core ではなく Ansible Engine を通じて提供され、さまざまなサポートレベルが提供されていました。パッケージは RHEL 8.6 以降の Ansible Automation コンテンツと互換性がない可能性があるため、Ansible Engine は使用しないでください。詳細は、Scope of support for the Ansible Core package included in the RHEL 9 and RHEL 8.6 and later AppStream repositories を参照してください。
- システムはカスタマーポータルに登録されます。
-
Red Hat Enterprise Linux Server
サブスクリプションがシステムにアタッチされている。 -
オプション:
Ansible Automation Platform
サブスクリプションがシステムにアタッチされている。
手順
Playbook を管理および実行するための
ansible
という名前のユーザーを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow useradd ansible
[root@control-node]# useradd ansible
新しく作成した
ansible
ユーザーに切り替えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow su - ansible
[root@control-node]# su - ansible
このユーザーとして残りの手順を実行します。
SSH の公開鍵と秘密鍵を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ssh-keygen
[ansible@control-node]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/ansible/.ssh/id_rsa): Enter passphrase (empty for no passphrase): <password> Enter same passphrase again: <password> ...
キーファイルの推奨されるデフォルトの場所を使用します。
- オプション: 接続を確立するたびに Ansible が SSH キーのパスワードを要求しないように、SSH エージェントを設定します。
~/.ansible.cfg
ファイルを次の内容で作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [defaults] inventory = /home/ansible/inventory remote_user = ansible [privilege_escalation] become = True become_method = sudo become_user = root become_ask_pass = True
[defaults] inventory = /home/ansible/inventory remote_user = ansible [privilege_escalation] become = True become_method = sudo become_user = root become_ask_pass = True
注記~/.ansible.cfg
ファイルの設定は優先度が高く、グローバルな/etc/ansible/ansible.cfg
ファイルの設定をオーバーライドします。これらの設定を使用して、Ansible は次のアクションを実行します。
- 指定されたインベントリーファイルでホストを管理します。
-
管理対象ノードへの SSH 接続を確立するときに、
remote_user
パラメーターで設定されたアカウントを使用します。 -
sudo
ユーティリティーを使用して、root
ユーザーとして管理対象ノードでタスクを実行します。 - Playbook を適用するたびに、リモートユーザーの root パスワードの入力を求められます。これは、セキュリティー上の理由から推奨されます。
管理対象ホストのホスト名をリストする
~/inventory
ファイルを INI または YAML 形式で作成します。インベントリーファイルでホストのグループを定義することもできます。たとえば、以下は、3 つのホストとUS
という名前の 1 つのホストグループを含む INI 形式のインベントリーファイルです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow managed-node-01.example.com [US] managed-node-02.example.com ansible_host=192.0.2.100 managed-node-03.example.com
managed-node-01.example.com [US] managed-node-02.example.com ansible_host=192.0.2.100 managed-node-03.example.com
コントロールノードはホスト名を解決できる必要があることに注意してください。DNS サーバーが特定のホスト名を解決できない場合は、ホストエントリーの横に
ansible_host
パラメーターを追加して、その IP アドレスを指定します。RHEL システムロールをインストールします。
Ansible Automation Platform のない RHEL ホストに、
rhel-system-roles
パッケージをインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum install rhel-system-roles
[root@control-node]# yum install rhel-system-roles
このコマンドは、
/usr/share/ansible/collections/ansible_collections/redhat/rhel_system_roles/
ディレクトリーにコレクションをインストールし、依存関係としてansible-core
パッケージをインストールします。Ansible Automation Platform で、
ansible
ユーザーとして次の手順を実行します。-
~/.ansible.cfg
ファイルで コンテンツのプライマリーソースとして Red Hat Automation Hub を定義します。 Red Hat Automation Hub から
redhat.rhel_system_roles
コレクションをインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ansible-galaxy collection install redhat.rhel_system_roles
[ansible@control-node]$ ansible-galaxy collection install redhat.rhel_system_roles
このコマンドは、コレクションを
~/.ansible/collections/ansible_collections/redhat/rhel_system_roles/
ディレクトリーにインストールします。
-
次のステップ
- 管理対象ノードを準備します。詳細は、管理対象ノードの準備 を参照してください。
関連情報
- RHEL 9 および RHEL 8.6 以降の AppStream リポジトリーに含まれる Ansible Core パッケージのサポート範囲
- How to register and subscribe a system to the Red Hat Customer Portal using subscription-manager (Red Hat ナレッジベース)
-
ssh-keygen(1)
man ページ - ssh-agent を使用して SSH キーでリモートマシンに接続する手順
- Ansible configuration settings
- How to build your inventory
- Updates to using Ansible in RHEL 8.6 and 9.0