Jenkins はジョブを実行しません。この質問を見て、すべてのスレーブ ノードを無効にしましたが、単純なジョブはマスター ノードでも実行されません。
なにが問題ですか?
Jenkins 管理コンソールは、マスター ノードがオフラインの場合でも実行できます。これは、Jenkins がディスク容量を使い果たしたときに発生する可能性があります。
確認するには、次の手順を実行します (geekride - jenkins-pending-waiting-for-next-available-executor に感謝します):
私の場合、エグゼキューターの数は0に設定されていました。それを増やして問題を修正しました。
私の場合、JenkinsFileに次のセットがありました
node('node'){
...
}
「ノード」と呼ばれるノードはなく、マスターのみです (値はいくつかの基本的なチュートリアルに従った後、そこに残されていました)。値を「マスター」に変更すると、ビルドが機能しました。
私の場合、エグゼキューターの数(1つありました)とパイプラインからのJenkinsジョブ(プロジェクト)の実行が原因でした(私のパイプラインスクリプトはJenkinsで他のジョブを開始しました)。デッドロックが発生しました- 私のパイプラインはエグゼキュータを保持し、そのジョブを待っていましたが、ジョブはエグゼキュータが解放されるのを待っていました。
解は で増加している可能性があり# of executors
ますJenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node)
。
私の場合、ボックスのメモリ (RAM) が不足しているときにこの動作に気付きました。Jenkins -> Manage Jenkins -> Manage Nodes に移動し、メモリ不足の例外を見つけました。マシンのメモリをいくらか解放したところ、ジョブがエグゼキュータに入り始めました。
私はゲームに少し遅れていますが、これは他の人を助けるかもしれません.
私の場合、jenkins マスターには共有外部リソースがあり、これはexternal-resource-dispatcher-pluginによって jenkins ジョブに割り当てられます。プラグイン (ベータ版) のバグJENKINS-19439が原因で、以前のジョブによってリソースがロックされていたのに、以前のジョブがキャンセルされたときにロックが解除されていないことがわかりました。
リソースが現在ロック状態にあるかどうかを調べるには、影響を受ける jenkins ノード、Jenkins -> Manage Jenkins -> Manage Nodes -> master に移動します。
外部リソースの現在の状態が表示されます。いずれかが予期せずロックされている場合、これがジョブがエグゼキュータを待機している理由である可能性があります。
この問題を手動で解決する方法の詳細は見つかりませんでした。
ジェンキンスを再起動しても問題は解決しませんでした。
結局、私は残忍なアプローチを取りました:
私の場合、「Authorize Project」プラグインをインストールしたばかりで、「Manage Jenkins -> Configure Global Security -> Access Control for Builds」の戦略を「Run as anonymous」として誤って設定しました。したがって、「匿名」にはジョブを実行する権限がありませんでした。
最初の戦略を「ビルドをトリガーしたユーザーとして実行」として設定すると、キューに入れられたジョブのロックが解除されました。
私にとって、以下の解決策はうまくいきました。
Jenkins --> Jenkins の管理 --> ノードの管理 --> マスター -> 構成 --> ノードのプロパティ --> ノードでのジョブの実行を制限する- が有効になり、特定のユーザーにアクセス権が付与されます。私は自分自身にアクセス権を与えてから、ジョブの実行を開始しました。
ノードでジョブの実行を制限するが有効になっている場合、スケジュールされたタスクは実行できません。
私にとっては、エグゼキュータを手動で再起動する必要があります。「Build Executor Status」の下の「Dead」をクリックし、再起動ボタンを押します。
私の場合Execute concurrent builds if necessary
、ジョブの一般設定で設定する必要があります。