6

ユーザーがスレーブの使用を開始したときに Windows スレーブをオフラインとしてマークするように Jenkins を構成する方法はありますか?

編集:使用を開始すると、ユーザーがログオンすることを意味します。

4

2 に答える 2

1

考えられる解決策の 1 つは、 Slave Prerequisites Pluginを使用することです。スクリプトに関してジョブの前提条件を追加できます。

スレーブ ノードでジョブを実行する前に、スクリプトをスレーブ ノードで実行するように設定します。0 以外のステータスを返す場合、ノードはジョブの実行を拒否され、別のノードが選択されるか、ジョブがビルド キューに戻り、利用可能なノードがその前提条件と一致するのを待機します。

次の Windows バッチ スクリプトを使用します。

python.exe -c "import psutil; assert len(psutil.get_users())==0"

psutilを入手する必要がありますが、純粋な Windows シェルで何かを作成できる場合があります。最も明らかな欠点は、利用可能とマークされているシステムだけを使用するのではなく、多くのシステムを使用していることです。

于 2013-02-06T08:00:28.217 に答える
1

Jenkins スレーブは Windows サービスとして登録できるため、1 つの方法は、現在ログオンしているユーザーがいないことを確認することです。

定期的に実行され、ユーザーがログオンしているかどうかを確認する Windows タスクを考えることができます。

  • ある場合は、サービスを停止します。
  • そうでない場合は、同じ Jenkins スレーブ エージェント Windows サービスを (再) 開始します。

誰がログオンしているかを確認するには、「From WindowsService how can I find currently logged in user from C#?」を参照してください。

于 2013-02-03T16:59:38.950 に答える