Назад | Перейти на главную страницу

Какие привилегии необходимы для успешного перезапуска jenkins из веб-интерфейса?

У меня возникает проблема, когда я пытаюсь перезапустить Jenkins с помощью веб-интерфейса (либо через http (s): // theserver / restart, либо через http (s): // theserver / saferestart), потому что Jenkins застревает на экране «Пожалуйста подождите, пока Jenkins перезапускается. Ваш браузер автоматически перезагрузится, когда Jenkins будет готов ». и служба никогда не отображается как остановленная, поэтому нам нужно вручную перейти к службам сервера и остановить / запустить или перезапустить службу Jenkins Windows, чтобы снова подготовить Jenkins.

Наш сервер Jenkins (текущая версия 2.60.3) работает на Windows2012R2, процесс Jenkins работает как служба Windows с технической учетной записью (domain \ sirjenkins) с ограниченными привилегиями.

Если техническая учетная запись, которая запускает процесс, является администратором, Jenkins обычно перезагружается через минуту после появления сообщений «подождите».

Привилегии, которые я назначил учетной записи domain \ sirjenkins: - Член группы «Пользователи» на сервере - Полные права доступа к файлам конфигурации jenkins - Полные права доступа к папкам рабочей области jenkins - Право на «Вход в качестве службы» в локальной политике безопасности

Все остальное в веб-интерфейсе Jenkins и автоматизированных процессах (кроме перезапуска из веб-интерфейса) работает без проблем при использовании этой учетной записи для запуска службы Jenkins Windows.

Я искал в Интернете аналогичную проблему, но большая часть того, что я обнаружил, - это проблемы, связанные с невозможностью запустить Jenkins вообще из-за проблем / ошибок конфигурации или предложений по назначению привилегий, которые я уже назначил этому учетная запись. Дальнейшее тестирование показало, что у Jenkins нет проблем при запуске с предоставленными ему ограниченными привилегиями, но он сталкивается с проблемами, просто пытаясь успешно остановить себя во время перезапуска сети.

Кто-нибудь еще сталкивался с этой проблемой, и есть ли какие-либо права пользователя, которые могут отсутствовать в «локальной политике безопасности» для учетной записи, которая запускает Jenkins как службу, чтобы иметь возможность успешно перезапустить Jenkins из веб-интерфейса?

Заранее спасибо.

Для перезапуска Jenkins я использую следующий сценарий конвейера:

import jenkins.model.*
sleep 15
Jenkins.instance.doSafeRestart(null);

Просто создайте новое задание типа «Pipeline», вставьте приведенный выше код и убедитесь, что вы сняли флажок «Use Groovy Sandbox».

В моей конфигурации учетная запись службы имеет дополнительные привилегии, но этот подход может также работать для учетной записи с ограничениями.

Вы также можете назначить права пользователя для каждого проекта на "создание" (фактически, запуск) этого задания, используя Плагин стратегии авторизации матрицыили запланируйте периодическое выполнение задания.