티스토리 뷰

반응형

 

지난 글에서 GCP VM인스턴스에 Jenkins 설치하는 과정을 설명했다.

젠킨스를 이용하여 빌드/배포를 자동화하기 위해서는 젠킨스가 인스턴스에 접속할 필요가 있다.

인스턴스에 접속할때에는 보안상 젠킨스만 VM인스턴스에 접근할 수 있도록 만들어 주어야 할 필요가 있는데 이때, SSH 접속을 이용하여 해결할 수 있다.

 

인스턴스에 SSH로 접속하도록 설정하는 방법을 알아보자.

대략적인 방식은 아래와 같다.

먼저 Jenkins에서 비대칭키를 생성하고 공개키를 인스턴스에 등록해 주면,

이후 인스턴스의 공개키는 Jenkins가 개인키로 복호화할 수 있으므로 Jenkins만 인스턴스에 접근할 수 있게 된다.

 

위의 내용들을 설정해 보자.

 

 


1. Jenkins에서 개인키와 공개키쌍 생성하기

젠킨스가 실행된 vm 인스턴스에 접속하여 아래의 스크립트를 통해 키쌍을 생성하자.

<noMenu/>
ssh-keygen -t rsa -f ~/.ssh/id_rsa

아래 그림처럼 무언가를 입력하라고 나오는데 그냥 Enter를 입력했다.

키의 randomart image가 나왔다면 잘 생성이 된 것이다.

생성된 키의 정보는 '~/.ssh/' 로 가면 확인할 수 있다.

 

 


2. 공개키와 개인키 확인하기

공개키를 인스턴스에 등록해 주어야 하므로 공개키를 열어봐야 한다.

홈 디렉토리 경로('~')에서 아래의 스크립트를 입력해 보자.

<noMenu/>
cd .ssh
ls

'id_rsa' 그리고  'id_rsa.pub' 2가지 파일을 볼 수 있다. 

'id_rsa' 가 개인키이고 'id_rsa.pub' 가 공개키이다.

아래의 스크립트를 입력하면 공개키 또는 개인키를 확인할 수 있다.

<noMenu/>
vi id_rsa.pub
vi id_rsa

 

 


3. GCP의 메타 데이터를 통해 Key 관리하기

GCP의 Compute Engine -> 설정 -> 메타데이터 탭 -> SSH 키 -> 수정 -> 항목 추가 를 차례대로 들어가 보자.

항목 추가를 하면 SSH키를 추가할 수 있는데 위에서 확인한 공개키를 붙여넣고 저장해 주면 된다.

 

 

저장이 잘 되었다면 아래 그림처럼 key가 등록된 것을 확인할 수 있다.

 

 

이렇게 등록하면 이미 존재하는 vm 인스턴스를 포함하여 새로 생성되는 모든 vm 인스턴스에 메타 데이터에 등록된 key가 등록되어 SSH접속을 위해 따로 설정해 주지 않아도 된다.

 

 

 


4. Jenkins에 개인키와 접속할 인스턴스들의 정보 입력하기

지난 글에서 Publish over SSH 플러그인을 젠킨스에 설치했었는데, 이제 사용할 차례이다.

젠킨스에 접속하여 로그인을 하고 Jenkins 관리 -> 시스템 설정에 들어간 후,

 

 

맨 아래로 스크롤을 내리면 Publish over SSH 설정이 보인다.

Key 항목에는 위에서 확인했던 개인키를 '-----BEGIN RSA PRIVATE KEY-----' 부터 끝까지 복사하여 붙여넣어 주자.

 

 

그 다음 위 그림에서 추가를 클릭하면 아래의 그림처럼 인스턴스의 정보를 입력할 수 있는 창이 나온다.

빌드/배포에 사용할 모든 VM인스턴스의 개수만큼 추가하여 정보를 입력해 주자.

(Rolling 무중단 배포를 구현하기 위해 만들어둔 N개의 VM인스턴스들의 정보를 아래와 같이 입력했다.)

 

각각의 입력은 아래의 과정을 거치면 된다.

1. 아래의 그림에서 Name은 가급적이면 GCP에서 인스턴스의 이름과 동일하게 지어주는것이 좋다.

2. Hostname은 IP를 적어주면 되는데 워커 인스턴스가 젠킨스와 같은 네트워크상에 있으면 내부IP를 사용해도 된다.

    (같은 Region에 내부 IP가 비슷하다면 같은 네트워크)

3. Username은 인스턴스와 연결된 Username에 대한 정보이다. GCP에서 로그인할때 사용하는 계정 ID를 적어주면 된다.

    ex) barbera04

4. Remote Directory는 홈 디렉토리를 사용했다. 홈 디렉토리 정보는 홈 경로(`~`)에서 스크립트 명령어 'pwd'를 입력하면 확인할 수 있다.

    ex) /home/barbera04

5. Test Configuration을 클릭하여 정상적으로 설정이 되었는지 확인할 수 있다. 잘 되었다면 왼쪽 하단에 'Success' 라는 출력을 확인할 수 있다.

6. 모든 입력이 끝난 후에는 저장을 해주면 된다.

 

 

 

 

다음으로, Jenkins를 이용하여 배포하는 방법에 대해 알아보자.

 

 

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함