イントロ
前回の記事のつづきです。Jenkinsサーバを構築したのち スレーブとなるWindowsPCをそのJenkinsにぶらさげて、JenkinsからそのWindowsマシンに何か処理をさせてみようというはなしでした。
ちなみにこのあとの作業は、今回構築したJenkinsでも、ご自身で別途用意したJenkinsでもどちらでもかまいません。適宜Jenkinsをご用意ください。
Jenkins側の設定
まずはJenkins側の設定から。任意の端末からブラウザでJenkinsにアクセス(http://[vagrantが動いているマシンのIP]:8888/jenkins/
)し、
-
Jenkinsの管理 >> ノードの管理 >> 新規ノード作成
と遷移、「ノード名」を 「windows-slave」
つぎの設定画面では
- リモートFSルート は、WindowsPC側のjarファイルなどが展開されるディレクトリで、とりあえず「c:/temp/」としました。もちろん、WindowsPC側に存在するパスを指定してください。
- 起動方法は「Launch agent by connecting it to the master」
保存されました。が、まだWindowsPCから接続していないので、アイコンには×がついている状態です。
WindowsPC側の設定
Jenkinsサーバへ接続
つづいてスレーブにしたい WindowsPCで操作します。ブラウザでJenkinsにアクセス(http://[vagrantが動いているマシンのIP]:8888/jenkins/
)し、Jenkinsの管理 >> ノードの管理 >> 「windows-slave」
へ遷移。
かつては下記の画面上の「Launch」アイコンのクリックでおしまい、だったのですが、セキュリティ上どうも動かないこともあるようなので、もう初めから手動でいきます。
少し下の agent.jar
へのリンクがあるのでクリックしてダウンロードします。
今回は、最終的にjarは「c:/temp
」においておきました。
さて画面をよく読むと、画面上に表示されている、
java -jar agent.jar -jnlpUrl http://localhost:8888/jenkins/computer/windows-slave/slave-agent.jnlp
-secret 0d2612f004fbbeab7a0e18cf48def8475f7cdf5eebf1a2a8a29e9e5ee66723d8
-workDir "c:/temp/"
をコマンドプロンプトから実行することで、WindowsPCからJenkinsサーバへ接続をしにいくみたいなので、さっそく上記を実行します。注意点は
- コマンドプロンプトを管理者権限で開くこと
- agent.jarを置いたディレクトリ
c:/temp
で実行すること - URLを localhostではなく、WindowsPCから見たときのJenkinsサーバのIP(ようするにブラウザバーに表示されているIPのこと) にすること
実行します。
Microsoft Windows [Version 10.0.17763.615]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\WINDOWS\system32>cd c:\temp
c:\Temp>java -jar agent.jar -jnlpUrl http://192.168.2.205:8888/jenkins/computer/windows-slave/slave-agent.jnlp -secret 0d2612f004fbbeab7a0e18cf48def8475f7cdf5eebf1a2a8a29e9e5ee66723d8 -workDir "c:/temp/"
... 割愛
情報: Trying protocol: JNLP4-connect
7 29, 2019 11:05:03 午前 hudson.remoting.jnlp.Main$CuiListener status
7 29, 2019 11:05:07 午前 hudson.remoting.jnlp.Main$CuiListener status
情報: Connected
確かにWindowsPCから接続が出来ているようです。
UiPath Studioでワークフロー作成
そういえば、Jenkinsから実行する Hello Worldなワークフローを UiPath Studioで作っておきましょう。
Publishして一度実行することで、
%userprofile%\.nuget\packages\HelloWorld2019\1.0.7149.20355\lib\net45
などに project.jsonなどが配置されることを確認しておきます。
スレーブのWindowsPC側の準備は完了です。
Jenkinsのジョブを作成
さて、UiPathのワークフローを実行するためのJenkinsのジョブを作成します。
任意の端末で Jenkinsを開き、「新規ジョブ作成」を選択
名前を「UiPathTest」として「フリースタイル・プロジェクトのビルド」を選択し「OK」をクリック。
設定画面では、一番上の General にある「実行するノードを制限」のラベルに、先ほど設定したWindowsPCのノード名「windows-slave」を指定しておきます。Jenkinsは通常ジョブをマスター(このLinux上のJenkinsサーバ)で実行するので、それをスレーブのWindowsPC実行に制限するための設定です。
さてずーと下に行って「ビルド手順の追加」プルダウンから、Windowsバッチコマンドの実行 を選び、、
コマンドのテキストエリアに
"c:\Program Files (x86)\UiPath\Studio\UiRobot.exe" -file "%userprofile%\.nuget\packages\HelloWorld2019\1.0.7149.20355\lib\net45\project.json"
さてJenkinsのジョブを実行します。左のメニューの「ビルド実行」をクリックします。
おお、WindowsPCで UiPath のワークフローが実行されました!MessageBoxをとじてワークフローは終了させておきましょう。
Jenkins側のログを確認しておきます。下記の通りビルド履歴のプルダウンから、コンソール出力を選択します。
JenkinsからUiPath Robotの操作ができることが確認出来ましたね!
まとめ
- 特定のアカウントでログイン済みのWindowsをJenkinsのスレーブとして設定することで、JenkinsからUiPath Robotのワークフローを実行することができそう
- ただスケジュール実行などはライセンス規約上許可されていないので要注意
- OrchestratorのUnattended RoboはWindowsにログインしてない状態でもワークフローを実行できて使い勝手がよい
- 当然ですが Orchestratorが持っているようなワークフローの配布、野良ロボの統率などの機能はない
おつかれさまでした。
関連リンク
- Vagrant環境のDockerでJenkinsサーバを構築し、スレーブのWindowsマシンを接続する(前半) 前回の記事
- UiPath Orchestrator Community Edition Unattended Robotの操作感など、こちらから試用できます
- 商用トライアルとCommunity エディションの違い | UiPath(ユーアイパス) 日本
- UiPath Robots の外部トリガーによる実行について