19.4. インスタンスの管理
ジョブの容量を拡張するには、Automation Controller のデプロイメントと一緒に実行するように追加できるスタンドアロンの 実行ノード を作成します。これらの実行ノードは、Automation Controller Kubernetes クラスターの一部ではありません。
クラスター内で実行される制御ノードは、Receptor を介して実行ノードに接続し、作業を送信します。
これらの実行ノードは、タイプ execution
インスタンスとして、Automation Controller に登録されます。つまり、コントロールノードのように作業をディスパッチしたり、Web リクエストを処理したりするのではなく、ジョブを実行するためにのみ使用されます。
ホップノード は、Automation Controller のコントロールプレーンとスタンドアロン実行ノードの間に追加できます。これらのホップノードは Kubernetes クラスターの一部ではなく、タイプ hop
のインスタンスとして Automation Controller に登録されます。つまり、別のネットワークまたはより厳密なネットワーク内で到達不可能なノードへの受信および送信のトラフィックのみを処理します。
次の手順は、ホストのノードタイプを設定する方法を示しています。
手順
-
ナビゲーションパネルから
を選択します。 Instances リストページで、 をクリックします。Add Instance ウィンドウが開きます。
インスタンスには次の属性が必要です。
Host name: (必須) インスタンスの完全修飾ドメイン名 (パブリック DNS) または IP アドレスを入力します。このフィールドは、インストーラーベースのデプロイメントの
hostname
に相当します。注記インスタンスがコントロールクラスターから解決できないプライベート DNS を使用している場合、DNS ルックアップルーティングは失敗し、生成された SSL 証明書は無効になります。代わりに IP アドレスを使用してください。
- オプション: Description: インスタンスの説明を入力します。
- Instance state: このフィールドは自動入力され、インストール中であることを示します。変更はできません。
-
Listener port: このポートは、受信接続をリッスンするために receptor に使用されます。ポートを設定に適したポートに設定できます。このフィールドは、API の
listen_port
に相当します。デフォルト値は 27199 ですが、独自のポート値を設定できます。 Instance type:
execution
ノードおよびhop
ノードのみを作成できます。Operator ベースのデプロイメントは、コントロールノードまたはハイブリッドノードをサポートしません。オプション:
- Enable instance: 実行ノード上でジョブを実行できるようにするには、このボックスをオンにします。
- Managed by policy ボックスをオンにして、ポリシーがインスタンスの割り当て方法を決定できるようにします。
Peers from control nodes:
ホップノードを設定する場合:
- 要求を Automation Controller からホップノードに直接プッシュする必要がある場合は、Peers from Control チェックボックスをオンにします。
- ホップノードを別のホップノードにピアリングする場合は、Peers from Control チェックボックスがオンになっていないことを確認します。
実行ノードを設定する場合:
- 要求を Automation Controller から実行ノードに直接プッシュする必要がある場合は、Peers from Control チェックボックスをオンにします。
- 実行ノードをホップノードにピアリングする場合は、Peers from Control チェックボックスがオンになっていないことを確認します。
- をクリックします。
更新したトポロジーをグラフィック表示するには、トポロジービュー を参照してください。
注記次の手順は、新しく作成したインスタンスへの SSH アクセスが可能な任意のコンピューターから実行してください。
Download Bundle の横にある
アイコンをクリックして、この新しいインスタンスと、作成されたノードを自動化メッシュにインストールするために必要なファイルを含む tar ファイルをダウンロードします。
インストールバンドルには、TLS 証明書および鍵、認証局、適切な Receptor 設定ファイルが含まれています。
receptor-ca.crt work-public-key.pem receptor.key install_receptor.yml inventory.yml group_vars/all.yml requirements.yml
receptor-ca.crt work-public-key.pem receptor.key install_receptor.yml inventory.yml group_vars/all.yml requirements.yml
Copy to Clipboard Copied! -
ダウンロードした
tar.gz
インストールバンドルを、ダウンロードした場所から展開します。これらのファイルがリモートマシン上の正しい場所にあることを確認するために、インストールバンドルにはinstall_receptor.yml
Playbook が含まれています。 ansible-playbook
コマンドを実行する前に、inventory.yml
ファイル内の次のフィールドを編集します。all: hosts: remote-execution: ansible_host: localhost # change to the mesh node host name ansible_user: <username> # user provided ansible_ssh_private_key_file: ~/.ssh/<id_rsa>
all: hosts: remote-execution: ansible_host: localhost # change to the mesh node host name ansible_user: <username> # user provided ansible_ssh_private_key_file: ~/.ssh/<id_rsa>
Copy to Clipboard Copied! -
ansible_host
が、ノードの IP アドレスまたは DNS に設定されていることを確認します。 -
ansible_user
を、インストールを実行しているユーザー名に設定します。 -
ansible_ssh_private_key_file
を設定して、インスタンスへの接続に使用される秘密鍵のファイル名を含めます。 -
inventory.yml
ファイルの内容はテンプレートとして機能し、メッシュトポロジーでの receptor ノードのインストールおよび設定中に適用されるロールの変数が含まれています。他のフィールドの一部を変更したり、高度なシナリオではファイル全体を置き換えたりすることができます。詳細は、Role Variables を参照してください。
-
プライベート DNS を使用するノードの場合は、次の行を
inventory.yml
に追加します。ansible_ssh_common_args: <your ssh ProxyCommand setting>
ansible_ssh_common_args: <your ssh ProxyCommand setting>
Copy to Clipboard Copied! これにより、
install-receptor.yml
Playbook が、プロキシーコマンドを使用してローカル DNS ノード経由でプライベートノードに接続するように指示されます。- 属性を設定したら、Details ページが開きます。 をクリックします。作成したインスタンスの
- ファイルを保存して続行します。
インストールバンドルを実行してリモートノードをセットアップし、
ansible-playbook
を実行するシステムには、ansible.receptor
コレクションがインストールされている必要があります。ansible-galaxy collection install ansible.receptor
ansible-galaxy collection install ansible.receptor
Copy to Clipboard Copied! あるいは、以下のような場合もあります。
ansible-galaxy install -r requirements.yml
ansible-galaxy install -r requirements.yml
Copy to Clipboard Copied! -
requirements.yml
ファイルから receptor コレクションの依存関係をインストールすると、そこで指定された receptor のバージョンが一貫して取得されます。さらに、今後必要になる可能性のある他のコレクションの依存関係も取得されます。 - Playbook が実行されるすべてのノードに receptor コレクションをインストールします。インストールしない場合は、エラーが発生します。
-
receptor_listener_port
が定義されている場合、マシンには、受信 TCP 接続を確立するために使用可能なオープンポート (27199 など) も必要です。次のコマンドを実行して、Receptor 通信用にポート 27199 を開きます (ファイアウォールでポート 27199 が開いていることを確認してください)。sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
sudo firewall-cmd --permanent --zone=public --add-port=27199/tcp
Copy to Clipboard Copied! - 自動化メッシュを更新するマシン上で、次の Playbook を実行します。
ansible-playbook -i inventory.yml install_receptor.yml
ansible-playbook -i inventory.yml install_receptor.yml
+
この Playbook には OpenSSL が必要です。次のコマンドを実行してインストールできます。
openssl -v
openssl -v
返される場合は、OpenSSL のバージョンがインストールされています。返されない場合は、次のように OpenSSL をインストールする必要があります。
sudo dnf install -y openssl
sudo dnf install -y openssl
+ この Playbook を実行すると、自動化メッシュが設定されます。

一部のサーバーが receptor ポートをリッスンしない場合があります(デフォルトは 27199)。
ノード A、B、および C を持つコントロールプレーンがあるとします。
以下は、3 つのコントローラーノードのピアリング設定です。
コントローラーノード A -→ コントローラーノード B
コントローラーノード A -→ コントローラーノード C
コントローラーノード B -→ コントローラーノード C
以下を設定すると、リスナーを強制できます。
receptor_listener=True
ただし、コントローラー B -→ A への接続は、すでに存在するため、拒否される可能性があります。
その場合、コントローラー A は他のノードへの接続を作成しているため、コントローラー A には何も接続されません。コントローラー A で次のコマンドを実行しても、何も返されません。
[root@controller1 ~]# ss -ntlp | grep 27199 [root@controller1 ~]#
RPM インストーラーは、最小権限アプローチを使用してコントロールプレーンノード間に強力に接続されたピアリングを作成し、必要なノード上でのみ TCP リスナーを開きます。Receptor の接続はすべて双方向接続であるため、接続が確立されると、Receptor は双方向に通信できるようになります。
メッシュからインスタンスを削除するには、インスタンスの削除 を参照してください。