Automation Suite
2022.4
バナーの背景画像
Automation Suite インストール ガイド
最終更新日 2024年4月24日

uipathctl.sh を使用する

uipathctl.sh スクリプトを使用すると、スクリプトを 1 つのノードで実行することにより、新しいバージョンへのクラスターのアップグレード、バックアップの構成、クラスターの復元を自動化できます。これらのタスクの自動化は、IT オートメーション ツール Ansible を使用して行われます。

要件

Ansible は、SSH メカニズムを使用して任意のホスト ノードまたはマシンにログインし、タスクを実行します。

uipathctl.sh スクリプトを実行する前に、次の手順を実行する必要があります。
  1. Ansible ホスト ノードを識別します。
  2. ノードの SSH 署名を既知のホストに追加します。
  3. SSH 認証方法を設定します。
  4. Ansible およびその他の前提条件ツールをインストールします。

手順については、以下のセクションをご覧ください。

Ansible ホスト ノードを識別する

Ansible ホスト ノードは、Ansible をインストールするマシンです。クラスター内ですべてのオートメーションを実行するために必要な権限が付与されるように、このマシンはサーバー ノードである必要があります。

オンライン インストールの場合、Ansible ホスト ノードは任意のサーバー ノードにすることができます。

オフライン インストールの場合、Ansible ホスト ノードは、UiPath バンドル ディスクを /uipath の場所にマウントしたプライマリ サーバー ノードである必要があります。UiPath バンドル ディスクがアタッチされたサーバー ノードがない場合は、追加のディスクを既存のサーバー ノードのいずれかにマウントし、そのノードを Ansible ホスト ノードと見なすことができます。

ノードの SSH 署名を既知のホストに追加する

ノードの SSH 署名を既知のホストに追加するには、クラスター内の各ノードのプライベート IP アドレスを Ansible ホスト ノードの known_hosts ファイルに追加します。
<node-private-ip> をクラスター内の各ノードのプライベート IP アドレスに置き換えて、次のコマンドを Ansible ホスト ノードで 1 つずつ実行します。
ssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hostsssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hosts

SSH 認証方法を設定する

Ansible は、次の 2 つの SSH メカニズムをサポートしています。

オプション 1: キーベースの SSH 認証 (推奨)

手順 1: SSH キーを設定する

SSH キー認証メカニズムでは、秘密キーと公開キーの組み合わせを使用します。

公開キーをコピーすることにより、他のすべてのノードで Ansible ホスト ノードの公開キーへのアクセス権を付与してください。

SSH キーがない場合は、ssh-keygen コマンドを実行して生成できます。
SSH キーを生成する
ssh-keygen コマンドを使用して新しい SSH キーを生成できます。新しい SSH キーを生成するには、ssh-keygen コマンドを実行して指示に従います。

新しい SSH キーを生成するには、次の手順を実行します。

  1. ssh-keygen コマンドを使用して新しい SSH キーを生成します。
  2. キーの場所を書き留めておきます。既定値は次のとおりです。

    • 公開キー: ~/.ssh/id_rsa.pub
    • 秘密キー: ~/.ssh/id_rsa
  3. 公開キーをコピーすることにより、他のすべてのノードで Ansible ホスト ノードの公開キーへのアクセス権を付与します。
各ノードの公開キーへのアクセス権を付与する
公開キーへのアクセス権を付与するには、ssh-copy-id コマンドを使用して、公開キーをクラスター内のすべてのノード (現在のノードを含む) にコピーします。SSH 公開キーのパスが ~/.ssh/id_rsa.pub ではない場合は、適宜置き換えてください。
ssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ipssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ip

手順 2: Ansible に SSH キー アクセスを提供する

Ansible は、SSH のメカニズムを使用してホスト マシンにログインし、必要なインストールを実行します。このため、Ansible に SSH キー アクセスを提供する必要があります。

次のいずれかの方法から選択します。

オプション 1: ssh-agent を使用する (推奨)
既定では、Ansible は ssh-agent を使用してノードへのアクセスを取得します。ssh-agent の詳細については、ssh-agent のマニュアルをご覧ください。
新しいキーを ssh-agent に追加するには、次のコマンドを実行します。
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsaeval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
オプション 2: 保護されていない秘密キーを使用する
注: このオプションは、秘密キーがパスフレーズで保護されていない場合にのみサポートされます。
この方法では、uipathctl.sh スクリプトに --ansible-private-key パラメーターを追加して、秘密キーを対話型で使用する必要があります。このパラメーターにより、秘密キーの絶対パスを取得して認証に使用します。

オプション 2: パスワードベースの SSH 認証

パスワードベースの SSH 認証を選択した場合は、uipathctl.sh スクリプトに --ansible-ask-password パラメーターを指定する必要があります。このパラメーターにより、認証用のパスワードの入力を求められます。

Ansible およびその他の前提条件ツールをインストールする

Ansible およびその他の前提条件ツールがインストールされているかどうかを確認する

前に選択した Ansible ホスト ノードに、Ansible と以下のその他のサポート ツールがインストールされていることを確認する必要があります。

  • ansible (v2.8 以上)
    ansible がインストールされているかどうかを確認するには、以下を実行します。
    ansible --version &>/dev/null || echo "Error: Ansible is not installed"ansible --version &>/dev/null || echo "Error: Ansible is not installed"
  • ansible-playbook

    ansible-playbook がインストールされているかどうかを確認するには、以下を実行します。
    ansible-playbook --version &>/dev/null || echo "Error: Ansible Playbook is not installed"ansible-playbook --version &>/dev/null || echo "Error: Ansible Playbook is not installed"
  • sshpass--ansible-ask-password パラメーターと共に認証にパスワードを使用する場合にのみ必要です。
    sshpass がインストールされているかどうかを確認するには、以下を実行します。
    sshpass -V &>/dev/null || echo "Error: sshpass is not installed"sshpass -V &>/dev/null || echo "Error: sshpass is not installed"
  • zipzip がインストールされているかどうかを確認するには、以下を実行します。
    zip --version &>/dev/null || echo "Error: zip is not installed"zip --version &>/dev/null || echo "Error: zip is not installed"
    重要: 前のコマンドのいずれかでエラーが発生する場合、対象のパッケージがマシンにインストールされていません。必要なツールをすべてインストールするには、次のセクションの手順を実行します。すべてのツールが既にインストールされている場合、以下の手順は省略できます。

Ansible およびその他の前提条件ツールをインストールする

Ansible とその他の関連パッケージをインストールするには、次の手順を実行します。

  1. Ansible ホスト ノードのインストーラー フォルダーに移動します。インストーラーは通常、/opt/UiPathAutomationSuite/{version} フォルダーにあります。
  2. 次のコマンドを実行します:
  • オンラインの場合:

    ./uipathctl.sh install-prerequisites --install-type online --accept-license-agreement./uipathctl.sh install-prerequisites --install-type online --accept-license-agreement
    • オフラインの場合:
Ansible とその他の依存パッケージが含まれる追加の Ansible tarball が必要です。ansible.tar.gz をダウンロードして、インストーラー フォルダー外の任意の場所に保存します。ダウンロードの手順については、「ansible.tar.gz」をご覧ください。
ansible.tar.gz が別の場所にある場合は、--offline-prerequisites-bundle パラメーターの絶対的な場所を更新します。
./uipathctl.sh install-prerequisites --install-type offline --offline-prerequisites-bundle ../ansible.tar.gz --accept-license-agreement./uipathctl.sh install-prerequisites --install-type offline --offline-prerequisites-bundle ../ansible.tar.gz --accept-license-agreement

Ansible の高度な構成

Ansible Inventory.ini ファイルを生成する

バックアップの構成時やアップグレード時など、一部のシナリオでは、Automation Suite によって Ansible の inventory.ini ファイルが自動的に生成されます。ただし、inventory.ini ファイルを構築して Ansible に提供しなければならない状況はほとんどありません。例:
  • クラスターをバックアップ データから復元している間。これは、復元時点では、inventory.ini を派生させるための正常なクラスターがないためです。
  • ユーザー名や SSH キーなど、ノードごとの固有性が非常に高い高度な構成を提供する場合。

詳細については、独自のインベントリの構築方法に関するページをご覧ください。

次のコード ブロックは、uipathctl.sh スクリプトが認識するインベントリ テンプレートを示しています。
[FIRST_SERVER]
'10.0.1.1'
[SECONDARY_SERVERS]
'10.0.1.2'
'10.0.1.3'
[AGENTS]
'10.0.1.4'
'10.0.1.5'
[TASKMINING]
'10.0.1.6'
[GPU]
'10.0.1.7'
[all:vars]
ansible_connection=ssh
ansible_timeout=10
ansible_user=admin[FIRST_SERVER]
'10.0.1.1'
[SECONDARY_SERVERS]
'10.0.1.2'
'10.0.1.3'
[AGENTS]
'10.0.1.4'
'10.0.1.5'
[TASKMINING]
'10.0.1.6'
[GPU]
'10.0.1.7'
[all:vars]
ansible_connection=ssh
ansible_timeout=10
ansible_user=admin

グループ

値 (Value)

[FIRST_SERVER]

uipathctl.sh スクリプトを実行する開始点です。これは Ansible ホスト ノードとも呼ばれます。

このノードのプライベート IP アドレスを指定する必要があります。

[SECONDARY_SERVER]

クラスター内の他のサーバー ノードのグループです。

他のすべてのサーバー ノードのプライベート IP アドレスを指定する必要があります。

[AGENTS]

クラスター内のエージェント ノードのグループです。

すべてのエージェント ノードのプライベート IP アドレスを指定する必要があります。

[TASKMINING]

クラスター内の Task Mining ノードのグループです。

すべての Task Mining ノードのプライベート IP アドレスを指定する必要があります。

[GPU]

クラスター内の GPU ノードのグループです。

すべての GPU ノードのプライベート IP アドレスを指定する必要があります。

[all:vars]

すべての定義済みホスト グループに適用される変数のグループです。

  • ansible_connection - 認証方法です。キーベースの SSH 認証と、パスワードベースの SSH 認証の 2 つの SSH メカニズムがサポートされています。
  • ansible_timeout - SSH 接続を確立できる既定の時間です。この時間を超えると、操作はタイムアウトします。接続の確立後に、接続へのアクセスに要する時間も制御します。
  • ansible_user - リモート サーバーにログインするユーザーの名前です。

変数は、グループごとまたはホスト ノードごとに指定できます。詳しくは、「多くのマシンへの変数の割り当て: グループ変数」をご覧ください。

Ansible 変数ファイルを生成する

他のノードでの Ansible オーケストレーションでは、Ansible が他のノード上のインストーラーと、対応するファイルの場所を判断するために使用するパラメーターをいくつか定義する必要があります。これらのパラメーターは、Yaml ファイルで定義して Ansible に提供します。
既定の構成を変更する場合は、次の形式のファイルを作成し、--ansible-variables-file を使用して uipathctl.sh に提供します。
#Path where installer zip is available. By default, uipathctl.sh takes the current folder and compress it to zip before copying it to other nodes.
installer_path: /path/to/installer.zip
# Path where installer will be copied on nodes
target_installer_base_path: /opt/UiPathAutomationSuite/<version>/installer
# Install type - online or offline
install_type: online
# Path on nodes where offline bundles will be copied
target_bundle_base_path: /opt/UiPathAutomationSuite/{version}
# Path on nodes where offline bundles will be extracted
target_tmp_path: /opt/UiPathAutomationSuite/tmp
# Basepath and filname for the various config files and bundles on the local machine
cluster_config_filename: cluster_config.json
cluster_config_basepath: /var/tmp/uipathctl_{version}
backup_config_filename: backup_config.json
backup_config_basepath: /var/tmp/uipathctl_{version}
restore_config_filename: restore.json
restore_config_basepath: /var/tmp/uipathctl_{version}
infra_bundle_filename: sf-infra.tar.gz
infra_bundle_basepath: /var/tmp/uipath_upgrade_<version>#Path where installer zip is available. By default, uipathctl.sh takes the current folder and compress it to zip before copying it to other nodes.
installer_path: /path/to/installer.zip
# Path where installer will be copied on nodes
target_installer_base_path: /opt/UiPathAutomationSuite/<version>/installer
# Install type - online or offline
install_type: online
# Path on nodes where offline bundles will be copied
target_bundle_base_path: /opt/UiPathAutomationSuite/{version}
# Path on nodes where offline bundles will be extracted
target_tmp_path: /opt/UiPathAutomationSuite/tmp
# Basepath and filname for the various config files and bundles on the local machine
cluster_config_filename: cluster_config.json
cluster_config_basepath: /var/tmp/uipathctl_{version}
backup_config_filename: backup_config.json
backup_config_basepath: /var/tmp/uipathctl_{version}
restore_config_filename: restore.json
restore_config_basepath: /var/tmp/uipathctl_{version}
infra_bundle_filename: sf-infra.tar.gz
infra_bundle_basepath: /var/tmp/uipath_upgrade_<version>

変数

値 (Value)

installer_path

sf-installer.zip のパスです。この値を指定しない場合、uipathctl.sh は現在のディレクトリを圧縮して、インストーラーの zip として他のノードにコピーします。

target_installer_base_path

インストーラーをコピーするノード上の場所のパスです。既定値: `/opt/UiPathAutomationSuite/{version

install_type

インストール方法です。設定可能な値は、online および offline です。

target_bundle_base_path

オフライン バンドルをコピーするノード上のパスです。既定の場所は /var/tmp/uipathctl_{version} です。

target_tmp_path

バンドルを抽出するノード上のパスです。既定の場所は /opt/UiPathAutomationSuite/tmp です。

cluster_config_filename

クラスター構成ファイルの名前です。既定値は cluster_config.json です。

cluster_config_basepath

オーケストレーション中に cluster_config.json を一時的に保存するノード上の場所です。既定値は /var/tmp/uipathctl_{version} です。

backup_config_filename

バックアップ構成ファイルの名前です。既定値は backup.json です。

backup_config_basepath

オーケストレーション中に backup.json を一時的に保存するノード上の場所です。既定値は /var/tmp/uipathctl_{version} です。

restore_config_filename

復元構成ファイルの名前です。既定値は restore.json です。

restore_config_basepath

オーケストレーション中に restore.json を一時的に保存するノード上の場所です。既定値: `/var/tmp/uipathctl_{version

infra_bundle_filename

インフラストラクチャ レイヤーを含むバンドルの名前です。これは、uipathctl.sh スクリプトで指定した名前と同じです。

infra_bundle_basepath

オーケストレーション中に sf-infra.tar.gz を一時的に保存するノード上の場所です。これは、uipathctl.sh スクリプトで指定した名前と同じです。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.