Apache 폴더의 Jenkins에 대한 권한

Apache 폴더의 Jenkins에 대한 권한

다음과 비슷한 문제가 있습니다. 대상 디렉터리에 대한 권한이 없는 경우 Jenkins "빌드 후" 작업으로 파일을 복사하는 방법

Jenkins 작업 공간에서 다음으로 파일을 이동/복사/재동기화하려고 합니다.

/var/www/app

권한이 다음으로 설정됨

아파치:아파치

그룹에 젠킨스를 추가했습니다 아파치, 그러나 jenkins 인스턴스는 /var/www/app에 파일을 복사할 수 없습니다.

또한 /var/www/app의 권한을 apache:jenkins로 설정하려고 시도했지만 여전히 Jenkins는 오류를 계속 뱉어냈습니다: Permission failed 또는 Operation not allowed

추신: OS를 추가하는 것을 잊어버렸습니다. CentOS입니다. ;)

편집 1: 이것은 jenkins 스크립트 runnig의 로그입니다.

[작업 공간] $ /bin/sh -xe /tmp/hudson1379987233097some_more_numbers.sh + sh /path_to_sh_script/script.sh 증분 파일 목록 보내기

애플리케이션/

rsync: "/var/www/app/application"에 대한 권한을 설정하지 못했습니다: 작업이 허용되지 않습니다. (1)

그리고 이것은 스크립트 자체입니다 :)

#!/bin/bash

rsync -avzh /path/to/jenkins/jobs/app/workspace/default/application /var/www/app ;

rsync -avzh /path/to/jenkins/jobs/app/workspace/default/library /var/www/app ;

rsync -avzh /path/to/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

비슷한 문제가있었습니다. Jenkins의 localhost에서/var/www에 쓰고 싶었습니다. 내 서버에서 /var/www는 www-data의 소유이므로 www-data 그룹에 jenkins를 추가하고 /var/www 그룹을 쓰기 가능으로 만들었지만 권한 거부 오류가 계속 발생했습니다. Jenkins 서비스를 다시 시작하면 문제가 해결되었습니다.

답변3

먼저 ssh-key 교환을 통해 SSH를 사용하여 Linux 또는 Apache 서버를 Jenkin 서버에 추가하세요. 그리고 사용자를 jenkin(unix 사용자)으로 사용하여 linux/apache 서버에 사용자를 만듭니다. 풀/푸시 파일에 대해 ssh를 수행하면 jenkin은 'jenkin'을 표준 사용자로 사용하기 때문입니다.

Unix의 jenkin 그룹에 Apache 사용자를 추가하면 도움이 될 수 있습니다.

관련 정보