はじめに
本記事ではUiPath製品をVDI環境にて使用する際の展開方法および留意事項について記載します。
この内容はバージョン2020.4 に基づくものであり、将来のバージョンアップにより製品仕様が変更される可能性がありますので、予めご了承ください。
また本記事の対応バージョンは、新ライセンスサーバーが使用される v2018.4.7以降、v2019.4.5以降、v2019.10.1以降 としております。
旧ラインセスサーバーが使用される v2018.3以前、v2018.4.1~v2018.4.6、v2019.4.1~v2019.4.4 は対象外としておりますのでご注意ください。
VDI製品の前提
UiPath製品は特定のVDI製品に依存することがないため、本記事では可能な限りニュートラルに記述しております。
本文書で扱う仮想デスクトップは Windows 7 または 10 などのクライアントOS (同時に1ユーザーのデスクトップセッションのみ許可される)を前提とします。同時にマルチユーザーセッションが許可されるサーバーOSやWindows Virtual DesktopにおけるWindows 10 Enterprise マルチセッションは本文書では対象外としています。
検証済みの製品についてはUiPath Studio/Robotのソフトウェア要件をご参照ください。
・https://docs.uipath.com/lang-ja/installation-and-upgrade/docs/studio-hardware-and-software-requirements
・https://docs.uipath.com/lang-ja/installation-and-upgrade/docs/robot-hardware-and-software-requirements
環境別考慮点
VDI環境およびUiPath環境の構成により、製品の展開方法および留意点が異なります。
ポイントとなる構成は下記の3点です。
- 1.Orchestrator: 使用有無
- ・Orchestrator有りの環境ではOrchestratorでライセンスが管理され、Orchestrator上であらかじめ定義されたロボットに動的にライセンスが付与されます。v2018.4以降ではStudioライセンスもOrchestratorで管理が可能となります。
- ・Orchestrator無しの環境はローカルアクティベーションを行い、ローカルディレクトリ上にアクティベーション情報を保持します。
- 2.割り当て: ユーザーとマシンの割り当てが固定(静的)かランダム(動的・流動的・プール型)か?
- ・Orchestrator無しの環境では、デフォルトでローカルディスク上にアクティベーション情報が保持されますが、割り当てがランダムの場合には、再アクティベーションが求められる場合があります。
- ・この問題を回避するには、移動プロファイルを使用するか、ファイル共有など永続的なディスク上にアクティベーション情報を保持しスクリプトなどによってローカルディスクに同期する実装が必要となります。
- ・Orchestrator有りの環境では、Orchestrator上のロボットは従来ユーザーとマシンの組み合わせで定義されています。このためユーザーとマシンの割り当てがランダムの場合には、それぞれを掛け算した数のロボットを登録する必要がありました。
- ・この問題は、フローティングロボットを使用することにより、v2018.3以降はAttended ロボット、v2018.4以降はStudio、v2020.4以降はUnattended ロボットを任意のマシンで使用可能となりました。
- 3.パーシステンス: OS再起動やマスターイメージ更新した場合でもファイル変更が保持されるか?
・パーシステンス有りの環境では個々の仮想デスクトップをマスターイメージからフルクローンして作成するため、個々にファイル変更を永続的に保持することができます。
・パーシステンス無しの環境ではマスターイメージを一対多で仮想デスクトップに割り当て、個々のデスクトップでは差分情報のみを保持します。
この差分情報はOS再起動やマスターイメージ更新などの操作によりリセットされるため、個々のデスクトップでのファイル変更は破棄されます。
- ・Orchestrator有り・パーシステンス無しの環境では、Orchestrator接続を行うための共通のマシンキーを予めマスターイメージ上で設定し、仮想デスクトップではフローティングロボットとしてAttendedロボットまたはStudioを使用することができます。Unattendedロボットはv2020.4以降でフローティングロボットに対応しております。
- ・Orchestrator無しの環境では、デフォルトでローカルディスク上にアクティベーション情報が保持されますが、パーシステンスが無い場合には、再アクティベーションが求められます。
- ・この問題を回避するには、ファイル共有など永続的なディスク上にアクティベーション情報を保持し、スクリプトなどによってローカルディスクに同期する実装が必要となります。
-
フローティングロボットの定義
・本文書におけるフローティングロボットは下記の範囲となります。
・Orchestrator v2019.10以降で実装されたモダンフォルダー上のロボット
・Orchestrator v2019.4以前、またはv2019.10以降のクラシックフォルダーにおけるフローティングロボット (次のナレッジベースを参照:https://www.uipath.com/ja/resources/knowledge-base/floating-robot-function)
それぞれの環境における留意事項一覧
パターン
|
Orchestrator
|
割り当て
|
パーシステンス
|
ロボット種類
|
|
詳細
|
---|---|---|---|---|---|---|
1 | 有 | 固定 | 有 | Unattended | 問題なく使用可 | |
2 | 有 | 固定 | 有 | Attended | 問題なく使用可 | |
3 | 有 | 固定 | 有 | Studio | 問題なく使用可 | |
4 | 有 | 固定 | 無 | Unattended | v2020.4以降のOrchestrator/Robotでフローティングロボット(Unattended)を使用する必要あり (移動プロファイルでは既知問題あり) | 5 |
5 | 有 | 固定 | 無 | Attended | フローティングロボット(Attended)を使用する必要あり (移動プロファイルでは既知問題あり) | 2 |
6 | 有 | 固定 | 無 | Studio | フローティングロボット(Development)を使用する必要あり | 3 |
7 | 有 | ランダム | 有 | Unattended | v2019.10以前ではマシンとユーザーのすべての組み合わせを予めロボットとして登録する必要あり。v2020.4以降のOrchestrator/Robotでフローティングロボット(Unattended)を推奨 | 1,5 |
8 | 有 | ランダム | 有 | Attended | マシンとユーザーのすべての組み合わせを予めロボットとして登録、またはフローティングロボット(Attended)を使用 (移動プロファイルでは既知問題あり) | 2 |
9 | 有 | ランダム | 有 | Studio | マシンとユーザーのすべての組み合わせを予めロボットとして登録、またはフローティングロボット(Development)を使用 | 3 |
10 | 有 | ランダム | 無 | Unattended | v2020.4以降のOrchestrator/Robotでフローティングロボット(Unattended)を使用する必要あり (移動プロファイルでは既知問題あり) | 5 |
11 | 有 | ランダム | 無 | Attended | フローティングロボット(Attended)を使用する必要あり (移動プロファイルでは既知問題あり) | 2 |
12 | 有 | ランダム | 無 | Studio | フローティングロボット(Development)を使用する必要あり | 3 |
13 | 無 | 固定 | 有 | Unattended | サポート対象外 (Orchestrator以外の外部トリガーを使う場合など) | |
14 | 無 | 固定 | 有 | Attended | 問題なく使用可 | |
15 | 無 | 固定 | 有 | Studio | 問題なく使用可 | |
16 | 無 | 固定 | 無 | Unattended | サポート対象外 (Orchestrator以外の外部トリガーを使う場合など) | |
17 | 無 | 固定 | 無 | Attended | アクティベーション情報をユーザーごと (Named Userの場合) またはマシンごと (Node Lockedの場合) に保持するよう構成変更します。 | 4 |
18 | 無 | 固定 | 無 | Studio | アクティベーション情報をユーザーごと (Named Userの場合) またはマシンごと (Node Lockedの場合) に保持するよう構成変更します。 | 4 |
19 | 無 | ランダム | 有 | Unattended | サポート対象外 (Orchestrator以外の外部トリガーを使う場合など) | |
20 | 無 | ランダム | 有 | Attended | アクティベーション情報をユーザーごと (Named Userの場合) に保持するよう構成変更します。 | 4 |
21 | 無 | ランダム | 有 | Studio | アクティベーション情報をユーザーごと (Named Userの場合) に保持するよう構成変更します。 | 4 |
22 | 無 | ランダム | 無 | Unattended | サポート対象外 (Orchestrator以外の外部トリガーを使う場合など) | |
23 | 無 | ランダム | 無 | Attended | アクティベーション情報をユーザーごと (Named Userの場合) またはマシンごと (Node Lockedの場合) に保持するよう構成変更します。 | 4 |
24 | 無 | ランダム | 無 | Studio | アクティベーション情報をユーザーごと (Named Userの場合) またはマシンごと (Node Lockedの場合) に保持するよう構成変更します。 | 4 |
留意事項の詳細
- 1.Orchestrator有り・割り当てランダムの環境でUnattendedロボット使用の場合(パターン7)
-
- ・v2019.10以前ではUnattendedロボットはフローティングロボットに未対応のため、マシンとユーザーのすべての組み合わせをあらかじめ標準ロボットとして登録する必要があります。
- ・すべての組み合わせが膨大になり登録することが現実的に難しい場合には、Unattendedロボットはマシンとユーザーの割り当てを固定に設定するようVDIを再構成することを推奨します。
- ・v2020.4以降ではUnattendedロボットがフローティングロボットに対応しております。詳細については留意事項5をご参照ください。
-
- 2.Orchestrator有り・割り当てランダムまたはパーシステンス無しの環境でAttendedロボット使用の場合(パターン5, 8, 11)
- ・フローティングロボット(Attended)を使用することにより、ユーザーのみをロボットとして登録し、共通のマシンキーを使用してOrchestrator接続された任意のマシンでAttendedロボットを実行することができます。
- ・移動プロファイル環境でフローティングロボットを使用する際の注意点については次のナレッジベースをご参照ください。
https://www.uipath.com/ja/resources/knowledge-base/about-roaming-user-profile-error
- 3.Orchestrator有り・割り当てランダムまたはパーシステンス無しの環境でStudio使用の場合
- (パターン6, 9, 12)
- ・フローティングロボット(Development)を使用することにより、ユーザーのみをロボットとして登録し、共通のマシンキーを使用してOrchestrator接続された任意のマシンでStudioを実行することができます。
- 4.Orchestrator無し・割り当てランダムまたはパーシステンス無しの環境でAttendedロボットまたはStudio使用の場合 (パターン17, 18, 20, 21, 23, 24)
- ・Orchestrator無しの環境では、デフォルトでローカルディスク上にアクティベーション情報が保持されますが、割り当てがランダムまたはパーシステンスが無い場合には再アクティベーションが求められる場合があります。
- ・この問題を回避するには、次の手順により永続的なディスクを使用してアクティベーション情報を保持するように構成変更します。対応手順は UiPath Studio / Robot のライセンスの種類により異なります。
- ・Named Userの場合、%AppData%\UiPath\LicenseInternal にアクティベーション情報 (license.dat) が保存されます。
このディレクトリおよびファイルは移動プロファイル環境下であれば自動的に同期されるため、初回起動時のみアクティベーションが求められますが、2回目以降は別マシンの仮想デスクトップにログオンした場合でも再アクティベーションする必要はありません。
移動プロファイルを使用していない環境は、初回アクティベーション後、ファイルサーバーに仮想デスクトップのログインユーザーごとに license.dat を保存し、ログオンスクリプトなどでファイルサーバーから対応するユーザーの license.dat を %AppData%\UiPath\LicenseInternal にコピーする実装が必要となります。 - ・Node Lockedの場合、%ProgramData%\UiPath\LicenseInternal にアクティベーション情報 (license.dat) が保存されます。
パーシステンス無しの環境では license.dat が保持されないため、初回アクティベーション後、ファイルサーバーに仮想デスクトップのマシンごとに license.dat を保存し、スタートアップスクリプトなどでファイルサーバーから対応するマシンの license.dat を %ProgramData%\UiPath\LicenseInternal にコピーする実装が必要となります。
- ・Named Userの場合、%AppData%\UiPath\LicenseInternal にアクティベーション情報 (license.dat) が保存されます。
・v2020.4で導入されたフローティングロボット(Unattended)を使用することにより、ユーザーのみをロボットとして登録し、共通のマシンキーを使用してOrchestrator接続された任意のマシンでUnattendedロボットを実行することができます。
この機能を使用するには前提として下記の環境が必要となります。
・OrchestratorおよびRobotがv2020.4以降
・Orchestratorにてモダンフォルダーを有効化
・Unattendedロボット実行ユーザーがADドメインに所属
・移動プロファイル環境でフローティングロボットを使用する際の注意点については次のナレッジベースをご参照ください。
https://www.uipath.com/ja/resources/knowledge-base/about-roaming-user-profile-error
・フローティングロボット(Unattended)の設定およびジョブ実行までの大まかな流れは下記の手順となります。
(1) Orchestratorにてマシンテンプレートを作成します。本番環境では[ライセンス - Unattended ランタイム」、非本番環境では「ライセンス - Non-Production ランタイム」を 1とします。
(2) Unattendedロボットマシンの元となるマスターイメージにて、UiPath Robot v2020.4以降をインストールし、Orchestratorとの接続に(1)で生成したマシンキーを使用します。必要に応じてSysprepを実行して一般化します。
(3) マスターイメージをクローンして仮想デスクトップを必要台数プロビジョニングします。この操作はハイパーバイザー上での手動クローン、またはVDI製品のデスクトッププロビジョニング機能を使用します。
(4) Unattendedロボット実行ユーザーとして、Orchestratorにてユーザーを追加します。ユーザーの [Unattendedロボット]プロパティにて、ロボット自動生成を有効化し、ドメインユーザーのパスワードを登録します。Orchestratorにおけるローカルユーザーの場合は、対応するドメインユーザー名を手動で割り当てます。追加されたユーザーに対してRobotロールを割り当てます。
(5) モダンフォルダーを作成し、(4)で作成したユーザーを割り当てます。さらに(1)で作成したマシンテンプレートをモダンフォルダーに割り当てます。
(6) Unattendedロボットに実行させるプロセスをモダンフォルダーに追加します。
(7) プロセス・実行回数・実行ユーザー(指定またはすべて)を選択し、ジョブを実行します。トリガーによる実行も可能です。
ジョブは「利用可」のマシンに動的に割り当てられます。すべてのマシンが「実行中」の場合には「保留中」となり、前のジョブが完了次第、実行が開始されます。