4

Jenkins ビルド環境のサニティ テスト用の Jenkins ジョブのリストを作成しています。ジョブのレイヤーを作成したい。ジョブの最初のレイヤーは環境をチェックします。たとえば、すべてのスレーブが起動している場合、2 番目のレイヤーは GitHub、TFS、SonarQube などの他のツールへの統合をチェックでき、3 番目のレイヤーはいくつかの典型的なビルド プロジェクトを実行できます。この健全性テストは、Jenkins サーバーに大きな変更を加えた後に環境を検証するためにも使用できます。

Windows と Linux の 2 つのサーバーに約 10 のスレーブを作成しました。特定のスレーブで実行するジョブを作成できることはわかっているので、スレーブがオンラインかどうかをテストしますが、この方法では、すべてのスレーブをテストするためだけに 10 個のジョブを作成する必要があります。すべてのスレーブがオンラインかどうかを確認する最善の方法はありますか?

4

1 に答える 1

6

1 つのオプションは、このようなタスクに Jenkins Groovy スクリプトを使用することです。Groovy プラグインは、Jenkins スクリプト コンソール(実験に便利な方法) と、Groovy スクリプトをビルド ステップとして実行する機能を提供します。定期的なメンテナンスに Script Console を使用する場合は、実行するスクリプトを管理できるScriptler プラグインも必要になります。

Manage Jenkins -> Script Consoleから、スレーブを繰り返し処理し、スレーブがオンラインかどうかをチェックする Groovy スクリプトを作成できます。

for (node in Jenkins.instance.nodes) {
  println "${node.name}, ${node.numExecutors}"
  def computer = node.computer
  println "Online: ${computer.online}, ${computer.connectTime} (${computer.offlineCauseReason})" 
}

基本的なチェックが完了したら、Scriptler でスタンドアロン スクリプトを作成するか、これらのチェックを定期的に実行する特別なビルドを作成できます。

多くの場合、調査するプロパティの適切なセットを把握するには、ある程度の反復が必要です。別の回答で説明したように、スクリプトで使用できるオブジェクトをイントロスペクトする関数を作成できます。そのため、試行錯誤を繰り返しながら、実行したいチェックを実行するスクリプトを開発できます。

于 2016-01-07T20:58:04.063 に答える