3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UiPath (produced with UiPath Friends)Advent Calendar 2024

Day 12

【UiPath】Linux Robotを使ってみよう!

Last updated at Posted at 2024-12-11

はじめに

本記事は UiPath (produced with UiPath Friends) Advent Calendar 2024 の第12日目です。

今回は UiPath Robot for Linux (以下Linux Robot) を使ったUnattended Robotの利点と環境構築手順について説明します。

Linux Robotは2021年10月頃にリリースされ、クロスプラットフォームのワークフローの実行環境として一般利用が可能になりましたが、あまり知られていない気がしますのでこの場でメリットや利用手順について宣伝してみたいと思います。

Linux RobotはDockerコンテナとして動作しますので、Dockerの使い方については少々知識が必要ですが、Linuxの操作はほとんど不要です。LinuxやmacOSでも動作しますが、今回は Docker for WindowsとAWS/Azureのコンテナサービスを使ってLinux Robotをデプロイする方法 についてご紹介したいと思います。

Linux Robotのメリット

ほとんどのケースではWindowsマシンが自動化処理の実行環境として使用されますが、Linux Robotを利用すると良いのはどのようなケースでしょうか?

まずLinux Robotの利用前提として、Studio WebやStudioのクロスプラットフォームとしてワークフローを開発する必要があります。その上で下記のようにLinux Robotを利用すると良い場面があります。

  • ワークフローの実行環境の利用コストを極力削減したい場合
  • 実行環境のデプロイを簡単に行いたい場合
  • Windowsマシンのパッチ適用などのメンテ作業を削減したい場合
  • ワークフローの実行時間が 15分以上 かかる場合

クロスプラットフォームワークフローで出来ること

クロスプラットフォームのワークフローでは次のオートメーションを実現できます。

  • ユーザー操作を必要としない自動化処理
  • Chromeを使用したWebブラウザー操作の自動化処理

詳細は Webガイド をご参照ください。

Linux Robotの利用手順

  1. ワークフロー作成
  2. Orchestrator設定
  3. Linux Robotのデプロイ
  4. ワークフロー実行

1. ワークフロー作成

Studio WebまたはStudioの対応OS「クロスプラットフォーム」にてワークフローを作成してOrchestratorのテナントプロセスフィードにパブリッシュします。

2. Orchestrator設定

次にOrchestratorにてワークフローを実行できるように設定します。

  • Automation Cloud のOrchestratorにて先ほど作成したワークフローをSharedフォルダーにてプロセスとしてそれぞれ追加します。
    03.png

  • テナント > マシンにてマシンテンプレートを作成し、Production (Unattended) ライセンスを1割り当ててプロビジョニングします。
    04.png

  • クライアントIDとクライアントシークレットをそれぞれコピーしてメモします。

    05.png

  • ロボットアカウントまたはユーザーにて無人オートメーションの設定をします。資格情報は不要です。
    06.png

  • Sharedフォルダーにアカウントを割り当てます。
    07.png

  • Sharedフォルダーにマシンを割り当てます。
    08.png

Orchestratorの設定は以上です。

3. Linux Robotのデプロイ

いよいよLinux Robotをデプロイします!
Dockerが利用可能な環境に応じて次のいずれかの手順を選択して実行します。

Docker for Windows

Windows環境にDockerをインストールします。

  • まずDocker Desktopのシステム要件とインストール手順について次のサイトをご参照ください。

  • Docker Desktopのインストーラーをダウンロードして実行します。
    09.png

  • インストールが成功しましたらDocker Desktopを起動し、"Engine running"と表示されることを確認します。
    10.png

  • コマンドプロンプトにて次のDockerコマンドを環境に応じて実行します。コマンドの詳細は Webガイド を参照してください。

    docker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/{組織名}/{テナント名}/orchestrator_" -e CLIENT_ID="{クライアントID}" -e CLIENT_SECRET="{クライアントシークレット}" -tid registry.uipath.com/robot/uiautomation-runtime:<tag>
    
    • <tag> はRobotバージョンに応じて設定します。現時点での最新版は 24.10.95.24248-robot24.10.0 です。なお一般的に使用される latest は残念ながらLinux Robotのデプロイには使用できません。
    • {クライアントID}{クライアントシークレット} はマシンテンプレート作成時にメモしたものを使います。
      11.png
  • Docker Desktopまたはコマンド docker ps -a にてLinux Robotのコンテナが実行中であることを確認します。

    12.png

    13.png

  • Orchestrator > テナント > 監視 > 無人セッションにて、Linux Robotマシンのステータスが 接続済み と表示されていることを確認します。

    14.png

以上でDocker for WindowsにてLinux Robotをデプロイする手順は完了です。

Amazon ECS

AWSのコンテナサービスであるECSを利用してLinux Robotをデプロイすることもできます。

  • AWSマネジメントコンソールにログインし、Amazon Elastic Container Service > タスク定義 > 新しいタスク定義の作成 > 新しいタスク定義の作成 をクリックします。

    23.png

  • タスク定義ファミリー名を入力し、起動タイプとして AWS Fargate のみが選択されていることを確認します。コンテナのCPUやメモリなども指定できますが、ひとまず既定値を使用します。

    24.png

  • コンテナの詳細にて名前を入力し、イメージURIとして registry.uipath.com/robot/uiautomation-runtime:24.10.95.24248-robot24.10.0 を指定します。ポートマッピングは不要なため 削除 をクリックします。

    25.png

  • 環境変数にて次のキーと値のペアを追加します。

    • LICENSE_AGREEMENT: accept
    • ORCHESTRATOR_URL: https://cloud.uipath.com/{組織名}/{テナント名}/orchestrator_
    • CLIENT_ID: {クライアントID}
    • CLIENT_SECRET: {クライアントシークレット}

    26.png

  • 画面下までスクロールし、作成 をクリックします。

    27.png

  • 次に Amazon Elastic Container Service > クラスター > クラスターの作成 をクリックします。

    28.png

  • クラスター名を指定し、インフラストラクチャとして AWS Fargate のみが選択されていることを確認し、 作成 をクリックします。

    29.png

  • クラスター作成が完了しましたら、クラスターをクリックし、タスク > 新しいタスクの実行 をクリックします。

    30.png

  • デプロイ設定にて先ほど作成したタスク定義ファミリーを選択し、画面下の 作成 をクリックします。

    31.png

  • タスク > 前回のステータスが実行中となることを確認します。

    32.png

  • Orchestrator > テナント > 監視 > 無人セッションにてステータスが 接続済み と表示されていることを確認します。

    33.png

以上でAmazon ECSにてLinux Robotをデプロイする手順は完了です。
なお今回はAWSマネジメントコンソールを使用しましたが、AWS CLIにてデプロイすることも可能です。詳細は AWSのWebガイド をご参照ください。

Azureコンテナーインスタンス

Azureのコンテナサービスであるコンテナーインスタンスを利用してLinux Robotをデプロイすることもできます。

  • Azureポータル にログインし、リソースグループを作成します。

    34.png

  • 次に Azure Cloud Shell を起動し、Bashを選択します。次の画面では ストレージアカウントは不要です を選択します。

    35.png

  • Azure Cloud Shellにて次のコマンドを実行します。{変数} は環境に応じて適宜変更します。

    az container create \
        --resource-group {リソースグループ名} \
        --name {コンテナ名} \
        --image registry.uipath.com/robot/uiautomation-runtime:24.10.95.24248-robot24.10.0 \
        --restart-policy OnFailure \
        --environment-variables 'LICENSE_AGREEMENT'='accept' 'ORCHESTRATOR_URL'='https://cloud.uipath.com/{組織名}/{テナント名}/orchestrator_' 'CLIENT_ID'='{クライアントID}' 'CLIENT_SECRET'='{クライアントシークレット}'
    

    36.png

  • しばらくしてコマンド実行が成功しましたら、コンテナーインスタンスに移動し、コンテナの状態が実行中であることを確認します。

    37.png

  • Orchestrator > テナント > 監視 > 無人セッションにてステータスが 接続済み と表示されていることを確認します。

    38.png

以上でAzureコンテナーインスタンスにてLinux Robotをデプロイする手順は完了です。

4. ワークフロー実行

  • Linux Robotが利用可能になりましたらワークフローを実行してみましょう。Sharedフォルダー > オートメーション > プロセスにて実行ボタンをクリックします。

    17.png

    • 必要に応じて入力引数を指定して実行します。

      18.png

    • Linux Robot上でジョブが実行され、ステートが成功となることを確認します。また出力値や実行ログなども確認します。

      19.png

  • Chrome自動化をデバッグする際には、ジョブの記録 を使用すると実行時の動作を動画で記録してくれるので便利です。ジョブの記録を有効にするには、プロセス > その他の設定 から行います。

    20.png

    • この状態でジョブを実行すると、ジョブ > ビデオタイムライン よりジョブ実行時の動画を再生することができます。

      21.png

注意事項など

Linux Robot 運用上の注意点について説明します。

ロボット診断ログの確認方法

Linux RobotがOrchestratorに接続できない場合などは ロボット診断ログ を確認します。

  • Dockerではコマンド docker logs {コンテナ名} を実行します。コンテナ名はあらかじめ docker ps -a で確認します。コンテナ名の代わりにコンテナIDを指定することもできます。

    15.png

  • Amazon ECSではクラスター内のタスクをクリックし、ログを確認できます。

    39.png

  • Azureコンテナーインスタンスでは、コンテナー > ログ よりログを確認できます。

    40.png

ワークフロー内でのファイル読み書き

Linux Robotでファイルを読み書きする際にはストレージバケットを使用します。

  • あらかじめOrchestratorにストレージバケットを作成します。

コンテナ削除・バージョンアップ

  • Dockerにてコンテナを削除するには次の手順を実行します。

    • docker ps -a にてコンテナ名を確認します。
    • docker stop {コンテナ名} にてコンテナを停止します。
    • docker rm {コンテナ名} にてコンテナを削除します。
    • ※ コンテナ名の代わりにコンテナIDを使用することもできます。

    16.png

  • Amazon ECSとAzureコンテナーインスタンスではそれぞれの管理画面でリソースを削除します。

  • 新しいバージョンのRobotにバージョンアップするには一旦既存のコンテナを削除し、新しいバージョンの <tag> を指定してコンテナを再作成します。Amazon ECSとAzureコンテナーインスタンスではそれぞれのリソース作成時に新しいバージョンの <tag> を指定します。

    docker run -e LICENSE_AGREEMENT=accept -e ORCHESTRATOR_URL="https://cloud.uipath.com/{組織名}/{テナント名}/orchestrator_" -e CLIENT_ID="{クライアントID}" -e CLIENT_SECRET="{クライアントシークレット}" -tid registry.uipath.com/robot/uiautomation-runtime:<tag>
    

古いセッション情報の削除

  • Linux Robotコンテナは再起動するたびに内部的なホスト名が異なります。このため Orchestrator > テナント > 監視 > 無人セッション の画面では古いセッション情報が残ります。ステータスが 切断 の不要なセッション情報は選択して削除することができます。

    22.png

おわりに

今回はLinux Robotのメリットと利用手順についてご説明しました。ワークフローをクロスプラットフォームで作成する必要がありますが、マシンのデプロイはコマンド一つで容易に実行できます。Unattended Robot実行環境の選択肢として検討していただけると幸いです。最後までお読みいただき有難うございました!

🎄 それでは皆さま、良いクリスマスと良いお年をお迎えください! 🎍

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?