Jenkins SSH 원격지 배포
1. 플러그인 설정
- Build Pipeline Plugin
쉽게 말하면 Job들 간에 관계를 제공합니다. Job 간의 순서와 트리거 기능을 제공합니다.
- dashboard-view
Build Pipeline Plugin에 종속성을 가지고 있는 플러그인으로 연관 관계가 있는 Job들 간의 Dashboard를 제공합니다.
- Slicing Plugin
빌드 히스토리 관리 (오래된 히스토리 폐기 https://wiki.jenkins.io/display/JENKINS/Discard+Old+Build+plugin )
- Deploy to container
- publish over ssh (SSH Publishers plugin)
배포 플러그인
- embeddable-build-status
git lab 에서 webhook 으로 진행된 내역 확인
1.1 시스템 환경설정 , ssh접속 정보 입력
> .Jenkins 환경설정 > ssh 설정 추가
2. 빌드후 조치 (Send build artifacts over SSH)
2.1 option 설정
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 : 배포 후 실행 할 명령어를 입력하는 곳으로 리눅스 설정에 따라 특정 명령어를 사용하지 못하므로
설정을 잘 해주거나, 특정 명령어의 절대경로를 입력해주는 방식으로 해결을 해야 한다.
2.2 예제
Source files : **/**/*-batch*/build/**/*.jar
Remove prefix : photon-batch/build/libs/
Remote directory :
Exec command : cd /home/mezzo
./batch.sh deploy
sleep 1
./batch.sh stop
sleep 1
./batch.sh start
2.3 예제 그림
---------------------------------------------------------------------------------------------------------------------
SourceFiles : 복사할 파일
Remove prefix : 파일 복사후 삭제할 폴더
Remote directory : 파일을 복사할 위치 (SSH 환경설저 정보 포함 APPEND)
Exec Command : 빌드후 명령어