Привилегии для jenkins в папке apache

Привилегии для jenkins в папке apache

У меня возникла проблема, похожая на эту: Как скопировать файлы в качестве действия Jenkins «после сборки», если у меня нет прав на доступ к целевому каталогу

Я готов переместить/скопировать/rsync файлы из рабочей области jenkins в

/var/www/app

с правами, установленными для

апач:апач

Я добавил Дженкинса в группу апач, но экземпляр jenkins не может копировать файлы в /var/www/app.

Я также пробовал установить привилегии /var/www/app на apache:jenkins, но Jenkins все равно продолжает выдавать ошибку: Permission denied or Operation not allowed

PS: Забыл добавить, что ОС — centOS ;)

EDIT 1: Это лог от запущенного скрипта Jenkins:

[рабочая область] $ /bin/sh -xe /tmp/hudson1379987233097some_more_numbers.sh + sh /path_to_sh_script/script.sh отправка инкрементного списка файлов

приложение/

rsync: не удалось установить разрешения для "/var/www/app/application": Операция не разрешена (1)

А это сам сценарий :)

#!/bin/баш

rsync -avzh /путь/к/jenkins/jobs/app/workspace/default/application /var/www/app ;

rsync -avzh /путь/к/jenkins/jobs/app/workspace/default/library /var/www/app ;

rsync -avzh /путь/к/jenkins/jobs/app/workspace/default/public /var/www/app ;

решение1

После долгого и плодотворного обсуждения в комментариях и послеэта ссылкапользователю удалось решить проблему, добавив

--no-perms --omit-dir-times

к rsyncвариантам.

Предварительные попытки решения проблемы:

Я думаю, если безопасность вас не волнует в течение короткого периода времени, вы можете попробовать

chmod a+rwx /var/www/app 

и затем попробуйте записать в этот каталог. Обратите внимание, что если есть подкаталоги, вы должны сделать это рекурсивно с помощью:

chmod --recursive a+rwx /var/www/app 

Если все прошло успешно, вы можете начать постепенно отменять разрешения, и это поможет вам точно определить проблему.

Убедитесь, что пользователь jenkins уже является членом группы apache с помощью

groups apache

решение2

У меня была похожая проблема. Я хотел записать в /var/www на localhost в Jenkins. На моем сервере /var/www принадлежит www-data, поэтому я добавил jenkins в группу www-data и сделал группу /var/www доступной для записи, но продолжал получать ошибку «отказано в доступе». Простой перезапуск службы jenkins решил проблему для меня.

решение3

Сначала добавьте ваш сервер Linux или Apache к серверу Jenkin с SSH с обменом ключами ssh. И создайте пользователя на сервере linux/apache с пользователем jenkin(unix user). Потому что если вы используете ssh для pull/push файла, jenkin использует 'jenkin' как стандартного пользователя.

Добавление пользователя Apache в группу Jenkin в Unix может помочь.

Связанный контент