LoginSignup
6
6

More than 3 years have passed since last update.

Vagrant環境のDockerでJenkinsサーバを構築し、スレーブのWindowsマシンを接続する(後半)

Posted at

イントロ

前回の記事のつづきです。Jenkinsサーバを構築したのち スレーブとなるWindowsPCをそのJenkinsにぶらさげて、JenkinsからそのWindowsマシンに何か処理をさせてみようというはなしでした。

Vagrant_Docker_jenkins.png

ちなみにこのあとの作業は、今回構築したJenkinsでも、ご自身で別途用意したJenkinsでもどちらでもかまいません。適宜Jenkinsをご用意ください。

Jenkins側の設定

まずはJenkins側の設定から。任意の端末からブラウザでJenkinsにアクセス(http://[vagrantが動いているマシンのIP]:8888/jenkins/)し、

  • Jenkinsの管理 >> ノードの管理 >> 新規ノード作成 と遷移、「ノード名」を 「windows-slave」

として「OK」を押下
01.png

つぎの設定画面では

  • リモートFSルート は、WindowsPC側のjarファイルなどが展開されるディレクトリで、とりあえず「c:/temp/」としました。もちろん、WindowsPC側に存在するパスを指定してください。
  • 起動方法は「Launch agent by connecting it to the master」

最後に「保存」をクリック。
02.png

保存されました。が、まだWindowsPCから接続していないので、アイコンには×がついている状態です。
03.png

WindowsPC側の設定

Jenkinsサーバへ接続

つづいてスレーブにしたい WindowsPCで操作します。ブラウザでJenkinsにアクセス(http://[vagrantが動いているマシンのIP]:8888/jenkins/)し、Jenkinsの管理 >> ノードの管理 >> 「windows-slave」 へ遷移。

かつては下記の画面上の「Launch」アイコンのクリックでおしまい、だったのですが、セキュリティ上どうも動かないこともあるようなので、もう初めから手動でいきます。

少し下の agent.jar へのリンクがあるのでクリックしてダウンロードします。
04.png

今回は、最終的にjarは「c:/temp」においておきました。
05.png

さて画面をよく読むと、画面上に表示されている、

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のこと) にすること

などなどです。
06.png

実行します。

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

接続出来たようですね。。ブラウザをリロードしてみると、、
07.png

確かにWindowsPCから接続が出来ているようです。

UiPath Studioでワークフロー作成

そういえば、Jenkinsから実行する Hello Worldなワークフローを UiPath Studioで作っておきましょう。
08.png

Publishして一度実行することで、
%userprofile%\.nuget\packages\HelloWorld2019\1.0.7149.20355\lib\net45
などに project.jsonなどが配置されることを確認しておきます。
09.png

スレーブのWindowsPC側の準備は完了です。

Jenkinsのジョブを作成

さて、UiPathのワークフローを実行するためのJenkinsのジョブを作成します。
任意の端末で Jenkinsを開き、「新規ジョブ作成」を選択
10.png

名前を「UiPathTest」として「フリースタイル・プロジェクトのビルド」を選択し「OK」をクリック。
11.png

設定画面では、一番上の General にある「実行するノードを制限」のラベルに、先ほど設定したWindowsPCのノード名「windows-slave」を指定しておきます。Jenkinsは通常ジョブをマスター(このLinux上のJenkinsサーバ)で実行するので、それをスレーブのWindowsPC実行に制限するための設定です。
14.png

さてずーと下に行って「ビルド手順の追加」プルダウンから、Windowsバッチコマンドの実行 を選び、、
12.png

コマンドのテキストエリアに

"c:\Program Files (x86)\UiPath\Studio\UiRobot.exe"  -file "%userprofile%\.nuget\packages\HelloWorld2019\1.0.7149.20355\lib\net45\project.json"

と入れて、保存をクリックします。
13.png

さてJenkinsのジョブを実行します。左のメニューの「ビルド実行」をクリックします。
15.png

処理が開始されたようなので、、、
16.png

スレーブのWindowsPCを見てみましょう。。
17.png

おお、WindowsPCで UiPath のワークフローが実行されました!MessageBoxをとじてワークフローは終了させておきましょう。

Jenkins側のログを確認しておきます。下記の通りビルド履歴のプルダウンから、コンソール出力を選択します。
18.png

今回の実行で処理されたログが表示されています。
19.png

JenkinsからUiPath Robotの操作ができることが確認出来ましたね!

まとめ

  • 特定のアカウントでログイン済みのWindowsをJenkinsのスレーブとして設定することで、JenkinsからUiPath Robotのワークフローを実行することができそう
  • ただスケジュール実行などはライセンス規約上許可されていないので要注意
  • OrchestratorのUnattended RoboはWindowsにログインしてない状態でもワークフローを実行できて使い勝手がよい
  • 当然ですが Orchestratorが持っているようなワークフローの配布、野良ロボの統率などの機能はない

おつかれさまでした。

関連リンク

6
6
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
6
6