Jenkinsを数回再起動することを含む、Jenkinsインスタンスの構成を変更する必要があります。しかし、当社の開発者は十分な頻度でコミットしているため、3日間でジョブが実行されていないJenkinsを見たことはありません。
Jenkinsを安全に再起動するネイティブな方法(GUIまたはコマンドライン経由)がありますか?IE:ダウンする前に現在のジョブが完了するのを待ち、Jenkinsが戻ったときに開始するキューに入れられたジョブを追跡します。
Jenkinsを数回再起動することを含む、Jenkinsインスタンスの構成を変更する必要があります。しかし、当社の開発者は十分な頻度でコミットしているため、3日間でジョブが実行されていないJenkinsを見たことはありません。
Jenkinsを安全に再起動するネイティブな方法(GUIまたはコマンドライン経由)がありますか?IE:ダウンする前に現在のジョブが完了するのを待ち、Jenkinsが戻ったときに開始するキューに入れられたジョブを追跡します。
回答:
に移動する$YOUR_JENKINS_URL/updateCenter/
と、次のページが表示されます。
ここで、Restart Jenkins when installation is complete and no jobs are running
どれがかなり安全であるかを確認できます。
/safeRestart
と、/restart
エンドポイントもあるはずです。
IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.
、これはまさにあなたがそのボックスをチェックしたときに起こることです。
Jenkins without jobs running in three days
-これは、一部の仕事が遅れるので影響があることを意味します。それでも、仕事を失うよりはましです。
訪問ます。https:// youjenkinsdomain / safeRestartそれが停止してから再起動へのジョブを待ったときのモードでそれを設定します。
Jenkins Rest API([jenkins_url] / safeRestart)を使用してsafeRestartコマンドを実行するか、Jenkins CLIを介してコマンドを実行できます。
sudo /etc/init.d/jenkins safeRestart
CLIコマンドの実行
一般的な構文は次のとおりです(設計はsvn / gitなどのツールに似ています)。
java -jar jenkins-cli.jar [-s JENKINS_URL]コマンド[オプション...] [引数...]
JENKINS_URLは、環境変数$ JENKINS_URLを介して指定できます。この環境変数は、ビルド中にJenkinsがプロセスを分岐するときに自動的に設定されます。これにより、URLを明示的に設定しなくてもビルド内からJenkins CLIを使用できます。
注:safeRestartコマンドを実行すると、再起動中に実行されるように設定されたジョブはすべてキューに入れられ、サーバーがオンラインに戻ったときに実行されます。これが再起動時に競合を引き起こさないことを確認してください!
これは多くの人が解決しようとしている本当の問題だと思います。プラグインのインストール時にJenkinsを再起動することが望ましい場合があります。私の経験に基づいて提供できる提案の1つは次のとおりです。
これには、手作業と調整が必要であることを理解しています。しかし、これは私たちのプロジェクトでこれまでのところうまく機能しており、言及しても害はないと考えました。
パイプラインジョブの場合、「https:// jenkins / safeRestart」にアクセスしても「jobs / builds」が完全に終了するのを待ちません。
手順が完了するのを待ってジェンキンの再起動を実行し、ジェンキンが再び表示された後にピップラインを再開するようです。