web-dev-qa-db-ja.com

コマンドラインを使用してWindowsサービスとして実行するようにJenkinsスレーブをセットアップする方法

コマンドラインを使用してjenkinsスレーブを作成したい。これは ドキュメント jenkinsスレーブをWindowsサービスとして設定することに関するものであり、私はそこでの指示に従いました。走れる javaws http://10.121.33.4:8080/computer/Test-Jenkins-Slave-2/slave-agent.jnlpスレーブをマスターに接続しますが、これの問題は、マシンの再起動後に切断されることです。

これを行う最善の方法は、スレーブをサービスとしてインストールすることです。なので、そのページの指示をもう一度試してみました。 jenkins Slaveをサービスとしてインストールし、レジストリキーを以下のように追加しました。

サービスのプロパティ:
enter image description here

レジストリ値:
enter image description hereenter image description here

何か間違ったことをしたのでしょうか?ドキュメントに何か不足していますか?

13
Anonymous

前回この回答を編集したとき(2019-09-20)、Jenkinsワーカー/スレーブをサービスとしてインストールするために見つけた最も速くて最も信頼できる方法は、「/ slave-agent.jnlp」エンドポイントを使用することですjnlpファイルをダウンロードするには、それを実行し、GUIから「ファイル」=>「サービスとしてインストール」オプションを選択します。

レジストリの変更を気にしないでください。組み込みインストールにより、プロセスが迅速、簡単、そして反復可能になります。

「amberboch」という名前のノードを構成したとしましょう。ワーカー/スレーブ(「amberboch」)マシン上:

  1. ブラウザを起動し、新しいノードのJenkins URLを入力して(またはJenkinsの[ノード]ページ内のノードをクリックして)、通常どおりにJenkins内にノードを作成します。
  2. ノードが作成されたら、ノード(Jenkins> Nodes> amberboch)に移動し、ブラウザのURLの末尾に「/slave-agent.jnlp」を含めます(例: " http:// jenkins:8080/computer /computer/amberboch/slave-agent.jnlp ")して、jnlpファイルをダウンロードします。 Notice "slave-agent.jnlp" is added manuallySave the file
  3. 管理者権限でslave-agent.jnlpファイルを実行します。 (「Java(TM)Web Start Launcher」で開始するためにJava/javawsを指定している場合があります)(または、Pau Sabatsによって証明されたJENKINS-29616にあるフォーマットを使用して、接続を保持する新しいエージェントjarを作成することもできます情報:Java -jar newAgent.jar -jnlpUrl http:// jenkins:8080/computer/amberboch/slave-agent.jnlp -secret xxxxxxxx -workDir "E:\ JenkinsClient"
  4. 「ファイル」=>「サービスとしてインストール」オプションをslave-agent.jnlp GUIから選択します

サービスがインストールされたら、特定のインストールに対して必要に応じてサービスの「ログオン」資格情報を変更します。管理者モードで実行中にジョブが偶然に実行されてワークスペースサブフォルダーが作成された場合は、アクセス許可をリセットするか、ワークスペース内のディレクトリを削除する必要があります(実行されたジョブが以前のadministrator-privilagedユーザー、および通常のJenkins-userプロファイルには、古いワークスペースフォルダーおよびファイルに対する適切な権限がない可能性があります。

これが、私が遭遇した最高のCIオプションの管理(私見)における時間と頭痛の節約になることを願っています。宜しくお願いします。

17
Robert

システムの起動後にサービスを明示的に開始する必要がある場合があります。次のことが必要になる場合があります。

  1. 「ログオン」タブに移動し、マシンの管理者権限を持つユーザーとしてサービスを開始します

または

  1. 以下の手順でWindowsスケジューラを介してjenkinsエージェントを開始します: https://wiki.jenkins-ci.org/display/JENKINS/Launch+Java+Web+Start+slave+agent+via+Windows+Scheduler =
0
mac

私は取った

  • jenkins.exe
  • jenkins.exe.config
  • jenkins.xml

jenkinsの「マスター」インストールから。次に、XMLを調整して、スレーブの起動パラメーターを含めました。これは次のようなものになります:

<executable>%Java_HOME%\bin\Java.exe</executable>
  <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "C:\Tools\jenkins_slave\slave_95\agent.jar" -jnlpUrl http://jenkins_master:9090/computer/slave_95/slave-agent.jnlp -secret 999999999999999999999999999999999999999999 -workDir "C:\jenkins_slaves_workdir"</arguments>

XMLで私も持っています:-id、name、descriptionのフィールドを私の好みに合わせて編集しました-'extensions'ブロックのコンテンツを削除しました

その後、次のコマンドを使用して、スレーブで管理シェルを実行しているWindowsサービスを開始できます。

sc create <service_name> binpath= "C:\Tools\jenkins_slave\slave_95\Jenkins.exe" start= auto

これは、原則としてJenkinsマスターサービスを開始するのと同じです。

0
Monger39