LoginSignup
0
1

More than 3 years have passed since last update.

[Jenkins] 1つのPCで複数のスレーブを動かす

Last updated at Posted at 2021-03-20

目次

  1. 複数のスレーブを動かすための手順 (SlaveにWindows Serviceを使用する)
  2. Slave Service の実行ユーザを変更する (トラブル対応)

1. 複数のスレーブを動かすための手順 (SlaveにWindows Serviceを使用する)

1. slave-agent.jnlp を管理者権限で実行します。下記の「A, B」どちらかの方法で実行します。

# A. コマンドライン
1. 管理者権限でコマンドライン(Power Shell or コマンドプロンプト)を開く
2. slave-agent.jnlp を実行する
> PS C:\Users\USER_NAME\Downloads> .\slave-agent.jnlp

# B. メニュー
slave-agent.jnlp を右クリックしてメニューから「管理者権限として実行」で実行する

2. 起動後、メニューからFile > install as serviceを選択する
image.png

成功するとスレーブのワーキングディレクトリに jenkins-slave.exejenkins-slave.xml が作成されます。
image.png


3. install as service で作成されたスレーブのサービスを停止します。
image.png


4. スレーブのサービス設定を変更するためにWindows サービスから設定を削除します
スレーブのワーキングディレクトリに移動し、
管理者権限でコマンドライン(Power Shell or コマンドプロンプト)を開いて下記を実行します。
※ タスクマネージャーのサービス一覧は自動更新されないので 表示 > 最新の情報に更新 が必要です。

(PowerShellの場合)
PS D:\JenkinsSlaveTest> .\jenkins-slave.exe uninstall

5. jenkins-slave.xml を編集する
スレーブのワーキングディレクトリ内にある jenkins-slave.xml をテキストエディタで編集します。
初めは下記のような状態になっているため、id と name を変更して保存します。

<service>
  <id>jenkinsslave-D__JenkinsSlaveTest</id>
  <name>Jenkins agent (jenkinsslave-D__JenkinsSlaveTest)</name>
  <description>This service runs an agent for Jenkins automation server.</description>

↓↓↓ id と name を変更 ↓↓↓

<service>
  <id>jenkins-slave-two</id>
  <name>Jenkins Slave Two</name>
  <description>This service runs an agent for Jenkins automation server.</description>

6. Windows サービスにスレーブを登録します
スレーブのワーキングディレクトリに移動し、
管理者権限でコマンドライン(Power Shell or コマンドプロンプト)を開いて下記を実行します。

(PowerShellの場合)
PS D:\JenkinsSlaveTest> .\jenkins-slave.exe install

成功すると、このようにサービスで確認できます。
image.png
「実行中」が「停止」になっている場合は右クリックでメニューを開き、開始を選択してください。

以上でスレーブの移行は終了です。
マスターの設定画面で、先に新しいノードの設定を行った後、次のスレーブで同じ手順を行ってください。
※ 新たに設定したノードに割り当てられたURLと jenkins-slave.xml 中に記載している <arguments> のJnlpURLが同じになるようにして下さい。

2. Slave Service の実行ユーザを変更する

スレーブ立ち上げをする際に slave-agent.jnlp をユーザ実行している状態から windows service で実行している状態へ変わったため、
スレーブのタスクを実行するユーザが変わっています。
そのため、タスクの実行状況(環境変数など)が変わり、問題が起きる場合があります。

(slave-agent.jnlp をユーザ実行している場合)
D:\JenkinsSlaveTest\workspace\WhoamiTask> whoami
workpc\okazaki

(windows service で実行している場合)
D:\JenkinsSlaveTest\workspace\WhoamiTask> whoami
nt authority\system

問題が起きた場合は、windows service で実行しているスレーブのサービスの起動するユーザを変更してください。
[Windows] サービスを起動するユーザを変更する

また、下記のようなエラーで実行するユーザの変更に失敗した場合はこちらを試してみてください。
実行アカウントに対してサービス ログオンアクセス許可を有効にする | Microsoft Docs

ローカルコンピューターのJenkinsサービスを開始できません。
エラー 1069: ログオンに失敗したため、サービスを開始できませんでした。

参考

複数のスレーブを動かすための手順 (SlaveにWindows Serviceを使用する)
Distributed builds - 日本語 - Jenkins Wiki
翻訳元: Distributed builds

0
1
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
0
1