CI/Jenkins
Jenkins와 SSH를 이용한 배포 연동
후뤼한잉여
2015. 12. 8. 11:40
Jenkins와 SSH를 이용한 배포 연동
1. 개요
Jenkins를 통해 빌드를 해보았으니 이번엔 배포에 대한 부분을 알아보고자 설정한 내용을 정리한 문서입니다.
2. Jenkins 설정
- Jenkins 접속
- 왼쪽 메뉴 중 [Jenkins 관리] 메뉴 클릭
- [시스템 설정] 메뉴 클릭
- 중간의 ‘Publish over SSH’부분에서 ‘SSH Servers’에 [추가]버튼 클릭
- SSH로 접속할 대상 서버의 정보를 입력후 저장한다.
3. Jenkins Job 설정
- Job(프로젝트) 선택
- 왼쪽 메뉴 중 [구성] 메뉴 클릭
- 제일 하단 부분에 ‘빌드 후 조치’ 부분에 [빌드 후 조치 추가] 메뉴 클릭 후 [Send build artifacts over SSH]를 클릭
- 만약 이 메뉴가 안보인다면 [Publish Over SSH] 플러그인을 설치
-
SSH로 작업할 내역 입력
- SSH Server Name : Jenkins 시스템 설정에서 등록한 SSH 서버 중 배포할 서버 선택
-
Souce files : 어떤 파일을 배포할 것인지 설정. **/*.jar는 모든 폴더의 jar로 끝나는 파일을 의미한다.
-
Remove prefix : 제거할 접두사를 의미하는데, 기본적으로 작업공간/빌드된 파일들로 되어있다. 예를들어 작업공간/A/B/C/test.jar가 있을때 C/test.jar로 배포하고 싶다면 여기에 A/B를 입력해준다.
- Remote directory : Jenkins 시스템 설정에서 SSH 설정시 지정한 홈 디렉토리 뒤에 추가로 입력하는 디렉토리인데, 배포할 파일이 저장될 디렉토리를 지정한다. 이 때 없으면 새로 생성해주지 않기 때문에 미리 만들어 져 있어야 한다.
- Exec command : 배포 후 실행 할 명령어를 입력하는 곳으로 리눅스 설정에 따라 특정 명령어를 사용하지 못하므로 설정을 잘 해주거나, 특정 명령어의 절대경로를 입력해주는 방식으로 해결을 해야 한다.
이제부터는 Gitlab을 통해 GitServer로 push를 하면 Webhook 설정에 의해 Jenkins CI에서 Gradle로 빌드를 하고, 지정한 서버로 SSH를 통해 배포가 가능해졌다.