- 概要
- 要件
- インストール
- インストール後
- クラスターの管理
- 監視とアラート機能
- 移行とアップグレード
- 製品固有の設定
- ベストプラクティスとメンテナンス
- トラブルシューティング
- インストール時にサービスをトラブルシューティングする方法
- クラスターをアンインストールする方法
- オフライン成果物をクリーンアップしてディスク領域を改善する方法
- Redis データをクリアする方法
- Istio ログを有効化する方法
- ログを手動でクリーンアップする方法
- sf-logs バンドルに保存されている古いログをクリーンアップする方法
- AI Center のストリーミング ログを無効化する方法
- 失敗した Automation Suite インストールをデバッグする方法
- アップグレード後に古いインストーラーからイメージを削除する方法
- Longhorn スナップショットを自動的にクリーンアップする方法
- NIC チェックサムオフロードを無効にする方法
- RHEL 8.4 OS でオフライン インストールを実行できない
- バンドルのダウンロード中のエラー
- バイナリがないため、オフライン インストールが失敗する
- オフライン インストールでの証明書の問題
- Longhorn のセットアップ中に最初のインストールが失敗する
- SQL 接続文字列の検証エラー
- selinux iscsid モジュールの前提条件の確認が失敗する
- Azure ディスクが SSD としてマークされない
- 証明書の更新後のエラー
- ウイルス対策が原因でインストールの問題が発生する
- OS のアップグレード後に Automation Suite が動作しない
- Automation Suite で backlog_wait_time を 0 に設定する必要がある
- ワークロードの準備ができていないためボリュームをマウントできない
- プロキシ設定がある場合に Automation Hub と Apps を起動できない
- 管理ポータルのタイムアウト期間を設定する
- 基になるディレクトリ接続を更新する
- 移行後に認証が機能しない
- Kinit: Cannot Find KDC for Realm <AD Domain> While Getting Initial Credentials
- kinit: Keytab contains no suitable keys for *** while getting initial credentials
- 無効なステータス コードが原因で GSSAPI 操作が失敗した
- Alarm received for failed kerberos-tgt-update job
- SSPI Provider: Server not found in Kerberos database
- アカウントが無効なため AD ユーザーのログインに失敗した
- ArgoCD へのログインに失敗した
- サンドボックス イメージを取得できない
- ポッドが ArgoCD UI に表示されない
- Redis プローブの障害
- RKE2 サーバーの起動に失敗する
- UiPath 名前空間でシークレットが見つからない
- 初回インストール後に ArgoCD が進行中ステートになる
- Unexpected inconsistency; run fsck manually
- MongoDB ポッドが CrashLoopBackOff になるか、削除後に PVC プロビジョニングの保留中になる
- MongoDB ポッドを 4.4.4-ent から 5.0.7-ent にアップグレードできない
- クラスターの復元またはロールバック後にサービスが異常になる
- Init:0/X でポッドがスタックする
- Prometheus が CrashloopBackoff ステートでメモリ不足 (OOM) エラーを伴う
- 監視ダッシュボードに Ceph-rook メトリックが表示されない
- Automation Suite 診断ツールを使用する
- Automation Suite サポート バンドル ツールを使用する
- ログを確認する
uipathctl.sh を使用する
uipathctl.sh
スクリプトを使用すると、スクリプトを 1 つのノードで実行することにより、新しいバージョンへのクラスターのアップグレード、バックアップの構成、クラスターの復元を自動化できます。これらのタスクの自動化は、IT オートメーション ツール Ansible を使用して行われます。
パラメーター |
説明 |
---|---|
|
クラスターをアップグレードします。 |
|
SSO を有効化するための Dex コネクタを表すサンプル ファイルを生成します。 |
|
サンプルの ArgoCD RBAC ファイルを生成します。 |
|
SSO を使用して ArgoCD と Dex をデプロイするための Kustomize オーバーレイを生成します。デバッグに便利です。 |
|
SSO を使用した ArgoCD と Dex の Kustomize オーバーレイを生成して適用します。 |
|
このフラグは、
upgrade コマンドを使用する場合にのみ表示されます。
アップグレード操作中に実行する手順です。既定値は
all です。
|
|
インストールの種類です。アップグレードと復元に必要です。 |
|
cluster_config.json ファイルへのパスです。指定しない場合、構成ファイルが生成されます。
|
|
クラスターへの接続を許可する Kubeconfig ファイルへのパスです。既定値は
/etc/rancher/rke2/rke2.yaml です。
|
|
クラスターを記述する有効な Ansible インベントリへのパスです。指定しない場合、インベントリが生成されます。 |
|
Ansible がクラスター ノードに接続するために使用するユーザー名です。既定では、現在のユーザーが設定されます。 |
|
クラスター ノードへの接続を提供する SSH 秘密キーです。指定しない場合、一連のパスワードの入力を求められます。 |
|
SSH 接続と昇格用に設定されたパスワードを要求するよう Ansible に要求します。 |
|
使用するカスタム
ansible.cfg へのパスを指定します。
|
|
sf-infra.tar.gz ファイルへのパスです。オフライン アップグレードの場合に必要です。
|
|
CNI のアップグレードを実行しません。 |
|
sso-generate-connector のコネクタの種類です。
|
|
SSO 連携用の Dex コネクタを含むファイルへのパスです。 |
|
SSO 連携用の Dex コネクタを含むファイルへのパスです。 |
Ansible は、SSH メカニズムを使用して任意のホスト ノードまたはマシンにログインし、タスクを実行します。
uipathctl.sh
スクリプトを実行する前に、次の手順を実行する必要があります。
- Ansible ホスト ノードを識別します。
- ノードの SSH 署名を既知のホストに追加します。
- SSH 認証方法を設定します。
- Ansible およびその他の前提条件ツールをインストールします。
Ansible ホスト ノードに以下のツールがインストールされていることを確認する必要があります。
ansible
(v2.8 以上)ansible-playbook
sshpass
– --ansible-ask-password パラメーターと共に認証にパスワードを使用する場合にのみ必要です。zip
手順については、以下のセクションをご覧ください。
Ansible ホスト ノードは、Ansible をインストールするマシンです。クラスター内ですべてのオートメーションを実行するために必要な権限が付与されるように、このマシンはサーバー ノードである必要があります。
オンライン インストールの場合、Ansible ホスト ノードは任意のサーバー ノードにすることができます。
/uipath
の場所にマウントしたプライマリ サーバー ノードである必要があります。UiPath バンドル ディスクがアタッチされたサーバー ノードがない場合は、追加のディスクを既存のサーバー ノードのいずれかにマウントし、そのノードを Ansible ホスト ノードと見なすことができます。
known_hosts
ファイルに追加します。
<node-private-ip>
をクラスター内の各ノードのプライベート IP アドレスに置き換えて、次のコマンドを Ansible ホスト ノードで 1 つずつ実行します。
ssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hosts
ssh-keyscan -H <node-private-ip> >> ~/.ssh/known_hosts
Ansible は、次の 2 つの SSH メカニズムをサポートしています。
- オプション 1: キーベースの SSH 認証 – 推奨。秘密キーと公開キーを使用します。
- オプション 2: パスワードベースの SSH 認証
手順 1: SSH キーを設定する
SSH キー認証メカニズムでは、秘密キーと公開キーの組み合わせを使用します。
公開キーをコピーすることにより、他のすべてのノードで Ansible ホスト ノードの公開キーへのアクセス権を付与してください。
ssh-keygen
コマンドを実行して生成できます。
SSH キーを生成する
ssh-keygen
コマンドを使用して新しい SSH キーを生成できます。新しい SSH キーを生成するには、ssh-keygen コマンドを実行して指示に従います。
新しい SSH キーを生成するには、次の手順を実行します。
ssh-keygen
コマンドを使用して新しい SSH キーを生成します。-
キーの場所を書き留めておきます。既定値は次のとおりです。
- 公開キー:
~/.ssh/id_rsa.pub
- 秘密キー:
~/.ssh/id_rsa
- 公開キー:
- 公開キーをコピーすることにより、他のすべてのノードで Ansible ホスト ノードの公開キーへのアクセス権を付与します。
各ノードの公開キーへのアクセス権を付与する
ssh-copy-id
コマンドを使用して、公開キーをクラスター内のすべてのノード (現在のノードを含む) にコピーします。SSH 公開キーのパスが ~/.ssh/id_rsa.pub
ではない場合は、適宜置き換えてください。
ssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ip
ssh-copy-id -i ~/.ssh/id_rsa.pub username@node-private-ip
手順 2: Ansible に SSH キー アクセスを提供する
Ansible は、SSH のメカニズムを使用してホスト マシンにログインし、必要なインストールを実行します。このため、Ansible に SSH キー アクセスを提供する必要があります。
次のいずれかの方法から選択します。
ssh-agent
を使用する (推奨)
ssh-agent
を使用してノードへのアクセスを取得します。ssh-agent の詳細については、ssh-agent のマニュアルをご覧ください。
ssh-agent
に追加するには、次のコマンドを実行します。
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
オプション 2: 保護されていない秘密キーを使用する
uipathctl.sh
スクリプトに --ansible-private-key
パラメーターを追加して、秘密キーを対話型で使用する必要があります。このパラメーターにより、秘密キーの絶対パスを取得して認証に使用します。
前に選択した 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"重要: 前のコマンドのいずれかでエラーが発生する場合、対象のパッケージがマシンにインストールされていません。必要なツールをインストールしてください。
yaml
出力を使用することをお勧めします。
export ANSIBLE_STDOUT_CALLBACK=yaml
export ANSIBLE_STDOUT_CALLBACK=yaml
この機能は Ansible 2.9 で導入されました。特定のインストールでは、次のコマンドを実行して有効化する必要があります。
ansible-galaxy collection install community.general
ansible-galaxy collection install community.general
community.general
コレクションをインストールしてもまだ「ERROR! Invalid callback for stdout specified: yaml
」というメッセージが表示される場合は、次のコマンドを実行して yaml
の出力を無効化できます。
unset ANSIBLE_STDOUT_CALLBACK
unset ANSIBLE_STDOUT_CALLBACK
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) |
---|---|
|
uipathctl.sh スクリプトを実行する開始点です。これは Ansible ホスト ノードとも呼ばれます。
このノードのプライベート IP アドレスを指定する必要があります。 |
|
クラスター内の他のサーバー ノードのグループです。 他のすべてのサーバー ノードのプライベート IP アドレスを指定する必要があります。 |
|
クラスター内のエージェント ノードのグループです。 すべてのエージェント ノードのプライベート IP アドレスを指定する必要があります。 |
|
クラスター内の Task Mining ノードのグループです。 すべての Task Mining ノードのプライベート IP アドレスを指定する必要があります。 |
|
クラスター内の GPU ノードのグループです。 すべての GPU ノードのプライベート IP アドレスを指定する必要があります。 |
|
クラスター内の Automation Suite ロボット ノードのグループです。 すべての Automation Suite ロボット ノードのプライベート IP アドレスを指定する必要があります。 |
|
すべての定義済みホスト グループに適用される変数のグループです。
変数は、グループごとまたはホスト ノードごとに指定できます。詳しくは、「多くのマシンへの変数の割り当て: グループ変数」をご覧ください。 |
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) |
---|---|
|
sf-installer.zip のパスです。この値を指定しない場合、uipathctl.sh は現在のディレクトリを圧縮して、インストーラーの zip として他のノードにコピーします。
|
|
インストーラーをコピーするノード上の場所のパスです。既定値: `/opt/UiPathAutomationSuite/{version |
|
インストール方法です。設定可能な値は、
online および offline です。
|
|
オフライン バンドルをコピーするノード上のパスです。既定の場所は
/var/tmp/uipathctl_{version} です。
|
|
バンドルを抽出するノード上のパスです。既定の場所は
/opt/UiPathAutomationSuite/tmp です。
|
|
クラスター構成ファイルの名前です。既定値は
cluster_config.json です。
|
|
オーケストレーション中に
cluster_config.json を一時的に保存するノード上の場所です。既定値は /var/tmp/uipathctl_{version} です。
|
|
バックアップ構成ファイルの名前です。既定値は
backup.json です。
|
|
オーケストレーション中に
backup.json を一時的に保存するノード上の場所です。既定値は /var/tmp/uipathctl_{version} です。
|
|
復元構成ファイルの名前です。既定値は
restore.json です。
|
|
オーケストレーション中に
restore.json を一時的に保存するノード上の場所です。既定値: `/var/tmp/uipathctl_{version
|
|
インフラストラクチャ レイヤーを含むバンドルの名前です。これは、
uipathctl.sh スクリプトで指定した名前と同じです。
|
|
オーケストレーション中に
sf-infra.tar.gz を一時的に保存するノード上の場所です。これは、uipathctl.sh スクリプトで指定した名前と同じです。
|