JENKINS 다른 계정 홈디렉토리
- Jenkins
- 2022. 5. 11. 22:57
AWS의 기본 사용자는 ec2-user이다.
ec2-user의 기본 홈디렉토리는 /home/ec2-user이다.
젠킨스 배포시 사용되는 사용자는 jenkins이다.
jenkins의 기본 홈디렉토리는 /var/lib/jenkins이다.
하지만! 내가 기존에 설정했던 모든 것들이 ec2-user의 홈디렉토리 안에 있다.
무엇이 있냐면... 컴파일용 shell 파일, 서버 시작 shell 파일, 운영서버용 설정파일...
그리고 외부에서 바라보는 경로또한 ec2-user의 홈디렉토리다.
무엇이 이 경로를 바라보고 있느냐면 현재는 gitweb, systemctl에서 이곳을 바라보고 있다.
그래서 jenkins유저가 ec2-user의 홈디렉토리에 읽기, 쓰기, 실행 권한을 가져야한다.
뿐만아니라 sudo 권한도 가져야한다.
$ sudo visudo
- 이 명령은 /etc/sudoers 라는 파일을 수정하는 명령이다.
- 처음에는 'root ALL=(ALL) ALL' 만 한 줄 있는데 그 밑에 'jenkins ALL=(ALL) NOPASSWD: ALL' 이라고 적어주자
- 이제 jenkins 유저가 sudo 명령을 사용할 수 있다.
홈디렉토리의 권한을 확인해보자
$ cd /home
$ ls -al
보면... ec2-user 폴더의 권한이 ec2-user에게 읽기,쓰기,실행 권한이 있고 ec2-user그룹이나 게스트는 어떤 권한도 없다.
그리고 ec2-user 폴더의 소유자는 ec2-user이고 권한 그룹은 ec2-user그룹이다.
소유자 말고 그룹에게도 권한을 주겠다.
$ sudo chmod 775 ec2-user
$ ls -al
/home, /home/ec2-user, /home/ec2-user/블라블라 모든 폴더의 권한을 확인해라! 그리고 다 바꿔라.
이제 같은 그룹은 읽기,쓰기,실행 권한이 생겼다.
※ 위에 그룹권한 주면 안된다. 이후에 EC2 접속할때 접속 못한다... 아래 권한을 확인해라.
이 글은 참고만하자. 유저홈에 프로젝트 만들지 말고 이글은 참고만해서 다른 곳에 만들어라.
다음은 올바른 권한 목록입니다.
- 예를 들어, Linux 홈 디렉터리(/home)는 (0755/drwxr-xr-x)여야 합니다.
- 사용자의 홈 디렉터리(/home/ec2-user/)는 (0700/drwx------)여야 합니다.
- .ssh 디렉터리 권한(/home/ec2-user/.ssh)은 (0700/drwx------)여야 합니다.
- authorized_keys 파일 권한(/home/ec2-user/.ssh/authorized_keys)은 (0600/-rw-------)여야 합니다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-server-refused-our-key/
자! 다음은 jenkins의 그룹을 확인하고 ec2-user그룹에 넣어줄것이다.
$ sudo cat /etc/group | grep -e jenkins -e ec2-user
- 해당명령으로 나오는 결과의 첫번째 항목이 그룹명이다.
- 두번째 항목이 비밀번호 (x는 없다는 뜻)
- 세번째 항목이 Group ID
- 네번째 항목이 기타 - 그룹에 속한 유저들
이제 jenkins유저를 ec2-user그룹에 추가해 주자.
$ sudo usermod -a -G ec2-user jenkins
- 그룹명이 ec2-user인 Group에 jenkins를 add
다시 확인해보자
$sudo cat /etc/group | grep -e jenkins -e ec2-user
jenkins가 jenkins그룹과 ec2-user그룹에 속해있다.
기본적으로 userName과 같은 이름을 가지는 groupName에는 해당 user가 속해있다.
확인해보려면 아래 명령!
$ id
jenkins 유저가 sudo 권한과 ec2-user 홈디렉토리의 읽기,쓰기,실행 권한도 가지게 되었다.
이제 jenkins에서 빌드가 끝난 녀석들을 스크립트를 통해 ec2-user의 홈디렉토리로 옮기고 gradle로 빌드하고 서버를 재시작하도록 준비가 끝났다.
'Jenkins' 카테고리의 다른 글
Jenkins CD (0) | 2022.05.17 |
---|---|
Jenkins - Plugin : Post build task (0) | 2022.05.07 |
Jenkins item 생성 & Build (0) | 2022.05.04 |
Jenkins Global Tool Configuration (0) | 2022.05.04 |
CentOS7 Jenkins (0) | 2022.05.02 |
이 글을 공유하기