CentOSマシンにJenkinsをデプロイしました。Jenkinsは 3 日間正常に動作していましたが、昨日Disk space is too low. Only 1.019GB left.
問題が発生しました。
この問題を解決するにはどうすればよいですか?マスターが何時間もオフラインになりますか?
jenkins UI からしきい値を簡単に変更できます (私のバージョンは 1.651.3 です)。
[ ]
この機能は、ディスクの空き容量が少ないスレーブでの作業を防ぐことを目的としています。しきい値を下げても、一部のジョブが終了後に適切にクリーンアップされないという事実は解決されません。
あなたが構築しているものに応じて:
代替案1 - ジョブごとに新しいスレーブをプロビジョニングします (スポット スレーブを使用します - さまざまなクラウド プロバイダーと統合してオンデマンドでオンザフライ マシンをプロビジョニングするプラグインが多数あります)
Alternative2 - コンテナー内でビルドを実行します。ビルドが完了すると、すべてが破棄されます
古いビルドを破棄することで、ディスク容量の削減を制限できます。プロジェクト構成には、このためのチェックボックスがあります。
これは実際には正当な質問なので、反対票を理解していません。おそらく、スーパーユーザーまたはサーバーフォールトに属しています。これは、ディスクの容量が不足している場合のハード制限ではなく、ソフト警告しきい値です。
ジェンキンスも同じです。結論として、多くの小さなプロジェクトでは、 呼び出されるシステム プロパティhudson.diagnosis.HudsonHomeDiskUsageChecker.freeSpaceThreshold
を減らすことができます。
私はそれをテストしておらず、免責事項があると言って
互換性保証なし
一般に、これらのスイッチは実験的なものであることが多く、予告なしに変更される可能性があります。それらのいくつかが役立つと思われる場合は、チケットを提出して公式機能に宣伝してください。
Jenkins Jobとして空き容量を確認するには:
FREE_SPACE
: GB単位で必要な空き容量。#!/usr/bin/env bash
free_space="$(df -Ph . | awk 'NR==2 {print $4}')"
if [[ "${free_space}" = *G* ]]; then
free_space_gb=${x/[^0-9]*/}
if [[ ${free_space_gb} -lt ${FREE_SPACE} ]]; then
echo "Warning! Low space: ${free_space}"
exit 2
fi
else
echo "Warning! Unknown: ${free_space}"
exit 1
fi
echo "Free space: ${free_space}"
Free space: (.*)
説明:Free space: \1
失敗したビルドの正規表現:Warning! (.*)
\1