Подтвердить что ты не робот

Как запустить script как root в Jenkins?

Мне нужно запустить оболочку script в Jenkins как root вместо пользователя по умолчанию. Что мне нужно изменить?

Мой файл sudoers выглядит следующим образом:

# User privilege specification
root    ALL=(ALL) ALL
igx     ALL=(ALL) ALL
%wheel  ALL=(ALL) ALL

# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
%sudo   ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) NOPASSWD:ALL
root    ALL=(ALL) ALL
jenkins ALL=NOPASSWD: /var/lib/jenkins/workspace/ing00112/trunk/source/
jenkins ALL=(ALL) NOPASSWD:ALL
#Defaults:jenkins !requiretty
4b9b3361

Ответ 1

Вы должны запустить скрипт, используя sudo:

sudo /path/to/script

Но прежде чем вы должны позволить jenkins запустить скрипт в /etc/sudoers.

jenkins    ALL = NOPASSWD: /path/to/script

Ответ 2

@Igor Chubin отвечает на 100% правильно, но никогда не открывает файл sudoer с обычным редактором. всегда используйте visudo

просто введите

sudo visudo

это приведет вас к /etc/sudoers, и при сохранении он будет уверен, что в форматировании нет ошибки.

Если вы сделаете ошибку в файле sudoer, вы потеряете доступ к sudo, поэтому всегда используйте visudo

Ответ 3

Я понимаю, что опаздываю на вечеринку по этому вопросу, но, ради ссылки, я подумал, что брошу здесь 2c: я использую плагин SSH для Jenkins для этого (просто настройте локальную цель). Таким образом, я могу содержать script непосредственно внутри Jenkins (как обычный шаг "Execute shell" ) вместо использования sudo для вызова внешнего script.