본문 바로가기

jenkins

jenkins - 배포 자동화 하기 - 원격 shell script 'Publish Over SSH'(3)

이전 글에서는 jenkins를 bitbucket과 연동하여 소스를 push하면 자동으로

서버에 받아오는 것까지 알아보았습니다. 

저번에 알아본 방법으로 배포를 자동화할 때는 소스가 있는 서버에 jenkins를 

설치해야 했습니다. test서버를 구성할 때는 모든 소스가 한 서버안에 있고 

jenkins 또한 같은 서버에 설치하여 운영을 하면 됐었지만 서버를 여러개로 나누고 

늘어나다보니 각 서버마다 jenkins를 설치해야 하고 관리하는 상황이 발생하였습니다. 

 

그래서 저는 jenkins 서버를 따로 구성하여 한개의 jenkins서버에서 모든 다른 서버들의 

소스를 관리하는 방법을 사용하였습니다. 이때 알아야 하는것이 원격으로 다른 서버에 

script를 실행할 수 있는 것과 jenkins서버에 받아온 소스코드를 원격에 있는 서버에 

전달하는 것입니다. 

이번에 진행할 순서는 다음과 같습니다. 

 

1. jenkins 플러그인 설치(Publish Over SSH)

2. jenkins 설정에서 remote 서버의 정보를 입력한다. 

3. bitbucket과 연동하여 설정

4. 원격으로 소스 보내기 및 실행할 shell script 설정

 

처음 해야할 일은 원격으로 ssh 접속을 해야하기 때문에 Publish Over SSH 플러그인을 

설치합니다. 

 

Jenkins 관리 > 플러그인 관리 > 설치가능 '탭'

이 경로로 들어온 다음 'ssh'만 검색해도 'Publish Over SSH'가 나옵니다. 

(저는 이미 설치를 했기 때문에 '설치 가능' 탭이 아닌 '설치된 플러그인 목록' 탭에 있습니다. )

설치를 완료 했으면 jenkins를 재시작해야 합니다. 

 

설치가 완료되었으면 다음 단계로 넘어갑니다. 

jenkins 관리 > 시스템 설정 > Publish over SSH '항목' 

이 경로로 이동합니다. 

이번 설정을 하기 위해서는 RSA 키를 알아야 합니다. 저는 작업을 AWS ec2에 했기 때문에 

처음 ec2를 생성할 때 받은 ssh 접속 키를 사용하여 했습니다. 

기본적으로 ec2를 생성할 때 ssh 키를 만들어서 다운받게 됩니다. (pem)

그리고 putty나 cmd로 접속을 할 때 pem 파일에서 private key를 만들어서 (ppk) 접속을 합니다. 

(** 저의 글중에 "aws ec2 만들기" 편을 참고하시기 바랍니다. )

여기서 필요한 파일이 pem 파일입니다. 

위 화면을 보면 'Publish over SSH' 항목입니다. 

여기서 설정해야 하는 것은 

1. key

2. SSH Servers의 Name

3. SSH Servers의 Hostname

4. SSH Servers의 Username

2. SSH Servers의 Remote Directory

입니다. 

 

1번의 key는 위에서 말한 pem파일을 열어서 내용을 넣어주면 됩니다.

내용의 시작과 끝에는 사진과 같은 문구가 적혀있는데 전부다 넣어주시면 됩니다. 

2번의 name은 임의의 이름이며 나중에 jenkins의 item을 설정할때 사용됩니다. 

3번의 hostname은 실제 접속할 원격 서버 ip입니다. 

4번의 username은 원격 서버에 접속할 때 원격 서버의 user 이름입니다. 

5번의 remote directory는 원격서버에 접속할 때 작업을 하게되는 디렉토리입니다. 

 

여기까지 설정을 하였으면 이제 실제 jenkins의 item을 생성하는 것은 다음 포스팅에서 진행하겠습니다.