2016-05-26 7 views
2

Я создал работу в jenkins, и я хочу построить проект, используя незаменимый. Я хочу запустить свою команду на нескольких хостах (вот почему я использую возможность). но когда я пытаюсь запустить проект, он терпит неудачу с некоторой ошибкой разрешения:Запуск с использованием Jenkins

/home/ubuntu/install.sh" -s -U ubuntu -f 5 FATAL: command execution failed java.io.IOException: Cannot run program "/usr/bin/ansible" (in directory "/var/lib/jenkins/jobs/Standard Demo/workspace"): error=13, Permission denied at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) at hudson.Proc$LocalProc.(Proc.java:244) at hudson.Proc$LocalProc.(Proc.java:216)

Разве вы не знаете, в чем проблема? Я зарегистрирован на сервере jenkins в качестве администратора.

+1

Ваши задания jenkins выполняются как пользователь 'jenkins', который по умолчанию не имеет оболочки, которая могла бы потребоваться. Сначала попробуйте этот маршрут. –

+0

Можете ли вы взять снимок вашей работы с дженкинсом и поделиться ею, чтобы мы могли вам помочь. –

ответ

0

Это не проблема с Ansible, это проблема конфигурации в Jenkins. Как отмечали другие, по умолчанию Дженкинс будет работать как «обычный пользователь» (обычно jenkins). Это пользователь, который выполняет задания и шаги (включая сценарии оболочки, такие как тот, который вы вызываете). В вашем случае у этого пользователя нет достаточных разрешений для запуска Ansible.

Я не рекомендую менять этого пользователя по умолчанию, потому что a. есть хорошие причины безопасности для этой установки, и b. на самом деле это может быть сложно сделать правильно, потому что вам придется решать проблемы с разрешениями для всех Дженкинсов в соответствии с новым пользователем. Тем не менее, довольно легко сделать такие вещи, как выполнить команду sudo на этапе построения скрипта. Просто используйте этот инструмент (и правильно настроенный /etc/sudoers), чтобы получить необходимые разрешения во время сборки.

Смежные вопросы