Мне нужно внести некоторые изменения в конфигурацию нашего экземпляра Jenkins, которые будут включать перезапуск Jenkins пару раз. Тем не менее, наши разработчики совершают достаточно часто, чтобы я не видел Дженкинса без работ, выполняемых в течение трех дней.
Есть ли собственный способ (либо через графический интерфейс, либо через командную строку) для безопасного перезапуска Jenkins? 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 переведет его в режим, когда он ожидает остановки заданий и затем перезапускается.
источник
Вы можете выполнить команду safeRestart, используя либо API Jenkins Rest ( [jenkins_url] / safeRestart ), либо вы можете выполнить команду через CLI Jenkins .
ПРИМЕЧАНИЕ. При выполнении команды safeRestart все задания, заданные для выполнения во время перезапуска, будут поставлены в очередь и выполнены, когда сервер снова будет в сети. Убедитесь, что это не вызывает никаких конфликтов при перезагрузке!
источник
Я думаю, что это реальная проблема, которую многие пытаются решить. Иногда бывает желательно перезапустить Jenkins после установки плагина. Одно из предложений, которое я могу предоставить исходя из своего опыта, заключается в следующем:
Я понимаю, что это требует ручных усилий и координации. Но это так хорошо сработало в нашем проекте, что упоминать не повредит.
источник
Чтобы перезапустить Jenkins вручную, вы можете использовать одну из следующих команд (введя их URL в браузере):
(jenkins_url)/safeRestart
- Позволяет завершить все запущенные задания. Новые задания останутся в очереди для запуска после завершения перезапуска.(jenkins_url)/restart
- Принудительно перезапускает, не дожидаясь завершения сборки.источник
Посещение « https: // jenkins / safeRestart » не ожидает полного завершения «заданий / сборок» в случае конвейерных заданий.
Кажется, что нужно дождаться окончания шагов и перезапустить Дженкинса и возобновить трубопровод после того, как Дженкинс снова появится.
источник
Дженкинс разработан, чтобы не быть затронутым перезапусками. Исходя из моего опыта, возможно, что сборка может завершиться неудачей из-за перезапуска, но они встречаются редко.
Там, где я работаю, нам приходилось регулярно перезагружать Дженкинс. У нас есть все виды работ, которые вы можете себе представить, некоторые маленькие, некоторые огромные. Лишь однажды мы увидели, что сборка провалилась, когда рассол не подвергался регидратации.
После этого мы всегда делаем безопасный перезапуск сейчас.
источник