特定のスレーブノードで特定のプロジェクトを実行するようJenkinsに指示する


87

特定のスレーブで特定のプロジェクトを実行するようにJenkinsに指示するにはどうすればよいですか?

Jenkinsマスターノードと、アプリケーションのステージングに使用するスレーブノードをセットアップしました。しかし、作成したスレーブノードで実行するようにプロジェクトを構成する方法がわかりません。


回答:


84

ジョブ設定で「このジョブを実行できる場所を制限する」チェックボックスを設定し、スレーブの名前を指定します。

後でスレーブを追加する場合、各スレーブにラベルを設定し、ジョブ設定でそれらを指定できます。

このリファレンスドキュメントを参照してください。


ありがとう。あなたの答えを見つける前に、私はかなり長い間使いました。このページに追加する必要がありますwiki.jenkins-ci.org/display/JENKINS/Distributed+builds
Surasin Tancharoen

16

パイプラインジョブを実行している場合、最初にラベル(「スレーブ」など)をスレーブノード(または現在呼び出されていると思われるエージェント)に追加します。

次に、パイプラインスクリプトで、ジョブを実行するラベルを指定します。

宣言的パイプライン:

pipeline {
    agent {label 'slave'}
    stages {
        ...
    }
}

スクリプト化されたパイプライン:

node (label: 'slave') {
    ...
}

このジョブは、ラベル「スレーブ」を持つ任意のノードで実行されます。この特定のスレーブでのみジョブを実行する場合は、ラベルを再利用しないでください。そしてもちろん、ラベルは「スレーブ」である必要はありません。あなたが望むものなら何でも構いません。

更新:

スクリプトパイプラインで、ノードの名前が「My Node」の場合、これも実行できます。

node ('My Node') {
    ...
}

特定のノードでのみコードブロックを実行する場合、これは便利です。ただし、ラベルを使用するとより柔軟になり、ノードを追加してワークロードを共有しやすくなります。


これを見つけるのは非常に困難でした。スクリプト化された構文のドキュメントは宣言を支持して死につつあります。まだ移行できませんので、ありがとうございます!
ミッチェルカリー

7

Node / Labelをパラメーターとして使用する場合は、NodeLabel Parameter Pluginをインストールします


ジョブの「ノード」パラメーターを選択し、Groovyから呼び出す場合は、特別なパラメーターを作成する必要があることに注意してくださいparams += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);(通常の代わりにStringParameterValue)。
Nux
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.