1.3. コントロールノードの準備
RHEL には、サポート範囲が限定された Ansible Core
が AppStream
リポジトリーに含まれています。Ansible の追加サポートが必要な場合は、Red Hat に連絡して、Ansible Automation Platform
サブスクリプションの詳細を確認してください。
前提条件
- システムをカスタマーポータルに登録している。
-
Red Hat Enterprise Linux Server
サブスクリプションをシステムにアタッチしている。 -
カスタマーポータルアカウントで利用可能な場合は、
Ansible Automation Platform
サブスクリプションをシステムにアタッチしている。
手順
rhel-system-roles
パッケージをインストールします。[root@control-node]# dnf install rhel-system-roles
このコマンドは、
Ansible Core
を依存関係としてインストールします。後で Playbook を管理および実行するために使用するユーザーを作成します。
[root@control-node]# useradd ansible
新しく作成した
ansible
ユーザーに切り替えます。[root@control-node]# su - ansible
このユーザーとして残りの手順を実行します。
SSH の公開鍵と秘密鍵を作成します。
[ansible@control-node]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/ansible/.ssh/id_rsa): password ...
キーファイルの推奨されるデフォルトの場所を使用します。
- オプション:接続を確立するたびに Ansible が SSH キーのパスワードを要求しないように、SSH エージェントを設定します。
~/.ansible.cfg
ファイルを次の内容で作成します。[defaults] inventory = /home/ansible/inventory remote_user = ansible [privilege_escalation] become = True become_method = sudo become_user = root become_ask_pass = True
この設定により、以下が可能になります。
- Ansible は、指定されたインベントリーファイルでホストを管理します。
-
Ansible は、管理対象ノードへの SSH 接続を確立するときに、
remote_user
パラメーターで設定されたアカウントを使用します。 Ansible は
sudo
ユーティリティーを使用して、root
ユーザーとして管理対象ノードでタスクを実行します。セキュリティー上の理由から、管理対象ノードで
sudo
を設定して、root
になるリモートユーザーのパスワードの入力を要求します。~/.ansible.cfg
でbecome_ask_pass=True
設定を指定すると、Playbook の実行時に Ansible によってこのパスワードの入力が求められます。
~/.ansible.cfg
ファイルの設定は優先度が高く、グローバルな/etc/ansible/ansible.cfg
ファイルの設定をオーバーライドします。~/inventory
ファイルを作成します。たとえば、以下は、3 つのホストとUS
という名前の 1 つのホストグループを含む INI 形式のインベントリーファイルです。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 アドレスを指定します。