[Jenkins] Jenkins에서 원격서버내에 shell script 실행 시키기

들어가며

 

Jenkins 서버가 원격 배포하는 서버에 배포과정에서 shell script를 실행할 필요가있어 정리하고자 포스팅한다.

 

 

 

Credential 추가

 

Jenkins 서버가 원격 배포하는 서버에 shell script를 실행하기 위해서는 일단 접근부터 가능해야한다. 따라서 원격 서버 정버에 대한 Credential을 추가한다.

 

메뉴 경로는 다음과 같다.

 

 

 

 

 

Jenkins관리 > Credentials > System > Global credentials > Add Credentials 진입을 했다면 아래와같이 작성하면된다.

 

 

 

 

Private Key 는 SSH방식으로 접근시 사용되는 .pem 파일 내용이다. 보통은 클라우드서비스에서 인스턴스 생성시 받을 수 있을 것이다.

만약 비대칭 키가 없다면 ssh-keygen 명령어로 만들어서 public key 내용을 배포하려는 서버의 ~/.ssh/authorized_keys 목록에 추가 해두면된다.(이건 안해봐서 될지는 모르겠다.)

 

 

SSH site 설정

 

앞서 등록한 Credential와 원격 서버의 정보를 바인딩 시켜줘야한다.

 

메뉴 경로는 다음과 같다.

 

 

 

 

Hostname은 원격 서버의 IP, Credentials는 앞서 등록했던 Credential을 선택하면 된다.

 

 

Job 구성 내 Execute shell script on remote host using ssh 설정

 

방금 추가했던 SSH site를 선택하고 Pre, Post build script에는 명시된 그대로 빌드 전과 후에 실행될 shell script를 작성 한다.

 

 

 

테스트

 

Job 실행시 빌드를 시작하기전 Pre build script에 기입했던 shell script가 실행된것을 확인할 수 있다.