[DevOps] Jenkins Permission denied 이슈

김의진·2022년 2월 3일
0

원인

  1. NCP -> Azure VM Migration 작업을 하며 기존 Jenkins도 Azure 서버를 바라보고 배포할 수 있도록 수정함. 이후부터 빌드 완료 시점에 'Exception when publishing, exception message [Permission denied]' 에러 발생

  2. Jenkins 설정 - Publish over SSH에 Azure 서버 환경변수 추가후 기존 Item 구성에 설정되어 있던 NCP 서버 대신 Azure 서버를 추가해줌.

문제

  1. Jenkins에서 빌드후 서버에 배포하는 과정에서 접근해야하는 서버의 특정 파일들에 접근및 수정권한이 없어 발생하는 '권한 문제' 로 확인

해결

  1. 배포 타겟 서버에서 ls -ltr 명령어로 현재 폴더의 파일 권한을 확인

  2. chmod 명령어로 권한문제가 발생하는 파일들의 권한을 추가해준다.

  3. 빌드된 jar 파일을 배포하기 위해서 해당 '폴더'의 쓰기 권한이 필요하기 때문에 폴더 자체의 접근 권한을 주어야 한다.

  4. Jenkins 의 Item의 '빌드 후 조치' 설정에서 SSH publishers - 고급 - Verbose output in console 설정을 통해 SSH의 자세한 로그를 확인 할 수 있다.

  5. 결과적으로 Permission denied 에러가 발생할 수 있는 에러는 굉장히 다양하다. 서버에 접근하면서 혹은 파일을 다루면서 발생하는 권한 에러의 총칭으로 생각하고 접근하면 쉽게 해결할 수 있다.

profile
3년차 Spring, Java 주니어 백엔드 개발자입니다.

0개의 댓글

관련 채용 정보