ユーザーがスレーブの使用を開始したときに Windows スレーブをオフラインとしてマークするように Jenkins を構成する方法はありますか?
編集:使用を開始すると、ユーザーがログオンすることを意味します。
ユーザーがスレーブの使用を開始したときに Windows スレーブをオフラインとしてマークするように Jenkins を構成する方法はありますか?
編集:使用を開始すると、ユーザーがログオンすることを意味します。
考えられる解決策の 1 つは、 Slave Prerequisites Pluginを使用することです。スクリプトに関してジョブの前提条件を追加できます。
スレーブ ノードでジョブを実行する前に、スクリプトをスレーブ ノードで実行するように設定します。0 以外のステータスを返す場合、ノードはジョブの実行を拒否され、別のノードが選択されるか、ジョブがビルド キューに戻り、利用可能なノードがその前提条件と一致するのを待機します。
次の Windows バッチ スクリプトを使用します。
python.exe -c "import psutil; assert len(psutil.get_users())==0"
psutilを入手する必要がありますが、純粋な Windows シェルで何かを作成できる場合があります。最も明らかな欠点は、利用可能とマークされているシステムだけを使用するのではなく、多くのシステムを使用していることです。
Jenkins スレーブは Windows サービスとして登録できるため、1 つの方法は、現在ログオンしているユーザーがいないことを確認することです。
定期的に実行され、ユーザーがログオンしているかどうかを確認する Windows タスクを考えることができます。
誰がログオンしているかを確認するには、「From WindowsService how can I find currently logged in user from C#?」を参照してください。