1.3. コントロールノードの準備

RHEL には、サポート範囲が限定された Ansible CoreAppStream リポジトリーに含まれています。Ansible の追加サポートが必要な場合は、Red Hat に連絡して、Ansible Automation Platform サブスクリプションの詳細を確認してください。

前提条件

  • システムをカスタマーポータルに登録している。
  • Red Hat Enterprise Linux Server サブスクリプションをシステムにアタッチしている。
  • カスタマーポータルアカウントで利用可能な場合は、Ansible Automation Platform サブスクリプションをシステムにアタッチしている。

手順

  1. rhel-system-roles パッケージをインストールします。

    [root@control-node]# dnf install rhel-system-roles

    このコマンドは、Ansible Core を依存関係としてインストールします。

  2. 後で Playbook を管理および実行するために使用するユーザーを作成します。

    [root@control-node]# useradd ansible
  3. 新しく作成した ansible ユーザーに切り替えます。

    [root@control-node]# su - ansible

    このユーザーとして残りの手順を実行します。

  4. 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
    ...

    キーファイルの推奨されるデフォルトの場所を使用します。

  5. オプション:接続を確立するたびに Ansible が SSH キーのパスワードを要求しないように、SSH エージェントを設定します。
  6. ~/.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.cfgbecome_ask_pass=True 設定を指定すると、Playbook の実行時に Ansible によってこのパスワードの入力が求められます。

    ~/.ansible.cfg ファイルの設定は優先度が高く、グローバルな /etc/ansible/ansible.cfg ファイルの設定をオーバーライドします。

  7. ~/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 アドレスを指定します。