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

uipathctl.sh を使用する

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

Uipathctl.sh のパラメーター

パラメーター

説明

upgrade

クラスターをアップグレードします。

sso-generate-connector

SSO を有効化するための Dex コネクタを表すサンプル ファイルを生成します。

sso-generate-rbac

サンプルの ArgoCD RBAC ファイルを生成します。

sso-generate-overlays

SSO を使用して ArgoCD と Dex をデプロイするための Kustomize オーバーレイを生成します。デバッグに便利です。

sso-apply-overlays

SSO を使用した ArgoCD と Dex の Kustomize オーバーレイを生成して適用します。

--steps <all|bundles|infra|fabric|services>

このフラグは、upgrade コマンドを使用する場合にのみ表示されます。
アップグレード操作中に実行する手順です。既定値は all です。
  • all – すべての手順を実行します。
  • bundles – 必要なオフライン バンドルをすべてのノードにコピーします。
  • infra – サーバー ノードとエージェント ノードへのインフラストラクチャのインストールを実行します。
  • fabric – サーバーへのファブリックのインストールを実行します。
  • services – サーバーへのサービスのインストールを実行します。

--install-type <online|offline>

インストールの種類です。アップグレードと復元に必要です。

--cluster-config

cluster_config.json ファイルへのパスです。指定しない場合、構成ファイルが生成されます。

--kubeconfig

クラスターへの接続を許可する Kubeconfig ファイルへのパスです。既定値は /etc/rancher/rke2/rke2.yaml です。

--inventory

クラスターを記述する有効な Ansible インベントリへのパスです。指定しない場合、インベントリが生成されます。

--ansible-username

Ansible がクラスター ノードに接続するために使用するユーザー名です。既定では、現在のユーザーが設定されます。

--ansible-private-key

クラスター ノードへの接続を提供する SSH 秘密キーです。指定しない場合、一連のパスワードの入力を求められます。

--ansible-ask-password

SSH 接続と昇格用に設定されたパスワードを要求するよう Ansible に要求します。

--ansible-config

使用するカスタム ansible.cfg へのパスを指定します。

--offline-infra-bundle

sf-infra.tar.gz ファイルへのパスです。オフライン アップグレードの場合に必要です。

--disable-cni-upgrade

CNI のアップグレードを実行しません。

--sso-connector-type

sso-generate-connector のコネクタの種類です。

--sso-connector-file

SSO 連携用の Dex コネクタを含むファイルへのパスです。

--sso-rbac-file

SSO 連携用の Dex コネクタを含むファイルへのパスです。

要件

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

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

Ansible ホスト ノードに以下のツールがインストールされていることを確認する必要があります。

  • ansible (v2.8 以上)
  • ansible-playbook
  • sshpass – --ansible-ask-password パラメーターと共に認証にパスワードを使用する場合にのみ必要です。
  • zip

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

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 (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"
  • zip

    zip がインストールされているかどうかを確認するには、以下を実行します。
    zip --version &>/dev/null || echo "Error: zip is not installed"zip --version &>/dev/null || echo "Error: zip is not installed"
    重要: 前のコマンドのいずれかでエラーが発生する場合、対象のパッケージがマシンにインストールされていません。必要なツールをインストールしてください。

Ansible の高度な構成

Yaml の出力を有効化する

出力を見やすくするために、次のコマンドを実行し、Ansible で yaml 出力を使用することをお勧めします。
export ANSIBLE_STDOUT_CALLBACK=yamlexport ANSIBLE_STDOUT_CALLBACK=yaml

この機能は Ansible 2.9 で導入されました。特定のインストールでは、次のコマンドを実行して有効化する必要があります。

ansible-galaxy collection install community.generalansible-galaxy collection install community.general
community.general コレクションをインストールしてもまだ「ERROR! Invalid callback for stdout specified: yaml」というメッセージが表示される場合は、次のコマンドを実行して yaml の出力を無効化できます。
unset ANSIBLE_STDOUT_CALLBACKunset ANSIBLE_STDOUT_CALLBACK

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'
[ASROBOTS]
'10.0.1.8'
[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'
[ASROBOTS]
'10.0.1.8'
[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 アドレスを指定する必要があります。

[ASROBOTS]

クラスター内の Automation Suite ロボット ノードのグループです。

すべての Automation Suite ロボット ノードのプライベート 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.