Documentation

9. インスタンスによる容量の管理

メッシュのスケーリングは、インストールスクリプトを実行せずに、automation controller ユーザーインターフェイスの Instances リソースを使用してクラスターからのノードを動的に追加または削除することで、Ansible Automation Platform の Openshift デプロイメントでのみ利用できます。

9.1. 前提条件

  • 続行する前に、RHEL 仮想マシンの最小要件があることを確認してください。詳細は、Red Hat Ansible Automation Platform system requirements を参照してください。

  • RHEL ノードは、以下を適切にサブスクライブする必要があります。

    • RHEL サブスクリプションと、有効な baseos および appstream リポジトリー

    • Ansible Automation Platform サブスクリプションと適切で有効な Ansible Automation Platform チャネル:

    ansible-automation-platform-2.3-for-rhel-8-x86_64-rpms for RHEL 8
    ansible-automation-platform-2.3-for-rhel-9-x86_64-rpms for RHEL 9
    
  • The system that is going to run the ansible-playbook requires the collection ansible.receptor to be installed:

    • If machine has access to the internet:

    ansible-galaxy install -r requirements.yml
    

    Installing the receptor collection dependency from the requirements.yml file will consistently retrieve the receptor version specified there, as well as any other collection dependencies that may be needed in the future.

  • デフォルト execution environment (コントローラーに付属) を使用してリモート実行ノード上で実行している場合、execution environment イメージをプルするための資格情報を含むプルシークレットをコントローラーに追加する必要があります。そのためには、Ansible Automation コントローラーの名前空間にプルシークレットを作成し、Operator 上で ee_pull_credentials_secret パラメーターを設定します。

    1. Create a secret:

    oc create secret generic ee-pull-secret \
     --from-literal=username=<username> \
     --from-literal=password=<password> \
     --from-literal=url=registry.redhat.io
    
    oc edit automationcontrollers <instance name>
    

    2. Add ee_pull_credentials_secret ee-pull-secret to the spec:

    spec.ee_pull_credentials_secret=ee-pull-secret
    
  • To manage instances from the controller user interface, you must have System Administrator or System Auditor permissions.

9.2. インスタンスの管理

左側のナビゲーションメニューから Instances をクリックして、インスタンス一覧にアクセスします。

_images/instances_list_view.png

インスタンスリストには、トポロジー内の現在のノードすべてと関連する詳細が表示されます。

  • Host Name

  • Status はノードの状態を示します。

    • Installed: 正常にインストールおよび設定されているが、まだ定期的なヘルスチェックをパスしていないノード。

    • Ready: ジョブを実行したり、メッシュ上のノード間でトラフィックをルーティングしたりできるノード。メッシュトポロジーで以前使用されていた「正常」のノード状態を置き換えるものです。

    • Provisioning: 現在のメッシュに追加中のノードで、すべてのパッケージをインストールジョブを待機しているノード (現時点ではサポートされておらず、今後のリリースで変更される可能性があります)。

    • Deprovisioning: 現在のメッシュから削除中のノードで、現在実行中のジョブを終了する過程にあるノード。

    • Unavailable: 接続またはレセプターの問題を示し、最新のヘルスチェックをパスしなかったノード。

    • Provisioning Failure: プロビジョニング中に失敗したノード (現在はまだサポートされておらず、今後のリリースで変更される可能性があります)。

    • De-Provisioning Failure: プロビジョニング解除中に失敗したノード (現在はまだサポートされておらず、今後のリリースで変更される可能性があります)。

  • Node Type は、ノードが制御ノード、ハイブリッド、ホップ、または実行ノードのいずれかを指定します。詳細は、node を参照してください。

  • Capacity Adjustment を使用すると、ノード内のフォーク数を調整できます。

  • Used Capacity は、使用された容量を示します。

  • **Actions**を使用すると、インスタンスを有効または無効にして、インスタンスへのジョブの割り当てを有効または無効にできます。

このページから、ノードのヘルスチェックを追加、削除、または実行できます。インスタンスの横にあるチェックボックスを使用して、ヘルスチェックを削除または実行するインスタンスを選択します。ボタンが灰色で表示されている場合、その特定のアクションに対する権限がありません。管理者に連絡し、必要なレベルのアクセス権を取得してください。インスタンスを削除できる場合、次のような確認のためのプロンプトが表示されます。

_images/instances_delete_prompt.png

注釈

インスタンスは、アクティブで、ジョブが実行されている場合でも削除できます。コントローラーは、このノードで実行中のジョブが完了するのを待ってから、実際にノードの削除しようとします。

Remove をクリックして確定します。

インスタンスでヘルスチェックを実行している場合、Details ページの上部にヘルスチェックが進行中であることを示すメッセージが表示されます。

_images/instances_health_check.png

Reload をクリックして、インスタンスのステータスを更新します。

注釈

ヘルスチェックは非同期で実行され、更新してもインスタンスのステータスが更新されるまでに最大 1 分かかる場合があります。ヘルスチェック後にステータスが変わる場合と変わらない場合があります。ヘルスチェックタスクが実行中の場合、Details ページの下部にある既知の最終ヘルスチェックの日付とタイムスタンプの横にタイマー/時計のアイコンが表示されます。

_images/instances_health_check_pending.png

ヘルスチェックの例は、ノード 'one' でエラーが発生した場合のステータス更新を示しています。

_images/topology-viewer-instance-with-errors.png

9.3. インスタンスの追加

容量を拡張する方法の 1 つは、トポロジー内のノードとして機能する インスタンスを作成することです。

  1. 左側のナビゲーションメニューから Instances をクリックします。

  2. Instances リストビューで Add ボタンをクリックすると、Create new Instance ウィンドウが開きます。

_images/instances_create_new.png

インスタンスには、設定可能な属性が複数あります。

  • Enter a fully qualified domain name (ping-able DNS) or IP address for your instance in the Host Name field (required). This field is equivalent to hostname in the API.

  • オプションとして、インスタンスの Description を入力します。

  • Instance State フィールドは自動入力され、インストール中であることを示し、変更できません。

  • Listener Port には最適なポートが事前設定されていますが、設定により適したポートに変更できます。このフィールドは API の listener_port に相当します。

  • Instance Type フィールドは自動入力され、変更できません。この時点で作成できるのは実行ノードのみです。

  • Enable Instance ボックスをオンにして、ジョブを実行できるようにします。

  1. 属性を設定したら、Save をクリックして続行します。

作成に成功すると、作成されたインスタンスの Details が開きます。

_images/instances_create_details.png

注釈

手順 4 - 8 は、新しく作成されたインスタンスに SSH アクセスできる任意のコンピューターから実行することを目的としています。AAP デプロイメントの一部であるマシンから実行しないでください。

  1. Install Bundle フィールドの横にあるダウンロードボタンをクリックして、この新しいインスタンスを含む tarball と、メッシュへのノードのインストールに関連するファイルをダウンロードします。

_images/instances_install_bundle.png
  1. ダウンロードした tar.gz ファイルをダウンロード先の場所から展開します。インストールバンドルには、インストールプロセスで使用する yaml ファイル、証明書、およびキーが含まれます。

  2. ansible-playbook コマンドを実行する前に、inventory.yml ファイルの以下のフィールドを編集します。

  • インストールを実行しているユーザー名の ansible_user

  • インスタンスへの接続に使用される秘密鍵のファイル名を含める ansible_ssh_private_key_file

---
all:
  hosts:
    remote-execution:
      ansible_host: 18.206.206.34
      ansible_user: <username> # user provided
      ansible_ssh_private_key_file: ~/.ssh/id_rsa

inventory.yml ファイルの内容はテンプレートとして機能し、メッシュトポロジーでのレセプターノードのインストールおよび設定中に適用されるロールの変数が含まれます。他のフィールドの一部を変更したり、高度なシナリオの場合でファイル全体を置き換えたりできます。各変数の詳細については、Role Variables を参照してください。

  1. ファイルを保存して続行します。

  2. メッシュを更新するマシンで以下のコマンドを実行します。

ansible-playbook -i inventory.yml install_receptor.yml
  1. 同じトポロジー内の他のインスタンスを表示するには、コントロールノードに関連付けられた Peers タブをクリックします。

注釈

現時点では、実行ノードであるコントロールプレーンノードのピアのみを表示できます。このリリースでは実行ノードの作成に制限されているため、実行ノードのピアを作成または表示することはできません。

_images/instances_peers_tab.png

ノードを選択し、Details ページで Run health check ボタンをクリックしてヘルスチェックを実行できます。

  1. 更新されたトポロジーをグラフィックで表示するには、本ガイドの トポロジービューアー セクションを参照してください。