NCP -> Azure VM Migration 작업을 하며 기존 Jenkins도 Azure 서버를 바라보고 배포할 수 있도록 수정함. 이후부터 빌드 완료 시점에 'Exception when publishing, exception message [Permission denied]' 에러 발생
Jenkins 설정 - Publish over SSH에 Azure 서버 환경변수 추가후 기존 Item 구성에 설정되어 있던 NCP 서버 대신 Azure 서버를 추가해줌.
배포 타겟 서버에서 ls -ltr 명령어로 현재 폴더의 파일 권한을 확인
chmod 명령어로 권한문제가 발생하는 파일들의 권한을 추가해준다.
빌드된 jar 파일을 배포하기 위해서 해당 '폴더'의 쓰기 권한이 필요하기 때문에 폴더 자체의 접근 권한을 주어야 한다.
Jenkins 의 Item의 '빌드 후 조치' 설정에서 SSH publishers - 고급 - Verbose output in console 설정을 통해 SSH의 자세한 로그를 확인 할 수 있다.
결과적으로 Permission denied 에러가 발생할 수 있는 에러는 굉장히 다양하다. 서버에 접근하면서 혹은 파일을 다루면서 발생하는 권한 에러의 총칭으로 생각하고 접근하면 쉽게 해결할 수 있다.