본문 바로가기

개발

[ncp] jenkins - sourcecommit - webserver 연동 - ( 1 )

저희 회사는 현재 naver cloud platform 을 사용하여 cloud server를 사용하고 만들려고하는 구성은 아래와 같습니다

 

source commit 이라는건 git이랑 같은 거라고 보시면 됩니다.

 

utility server 는 docker 위에 jenkins를 설치하여 사용하고 있고   web server 는 docker 위에 여러 app을 올려 사용하려고합니다 .

(ncp 에서 제공하는 jenkins가 따로 있지만 docker jenkins를 사용하기로..  )

 

이전에 source commit 대신 gitlab을 사용하고 webserver에 docker 없이 app을 올려 사용해본 경험이 있습니다.

 

그때와 조금 방법이 달라 기록해놓고자 합니다.

 

진행 하려는 부분은 다음과 같습니다

사전 준비 

1. source commit 에 repository 생성 

2. utibity server instance에 docker 와 jenkins container 생성 

아래 참조 

https://ryu-e.tistory.com/12

 

도커 자동 배포하기 - jenkins

💡 목차 이번 시간에는 도커 이미지 자동 배포를 진행하려고 합니다. 아래 목차를 확인하여 전체적으로 무엇을 배울지 확인하고 갑시다. jenkins jenkins에 대한 간단히 알아보고 갑니다. jenkins 도

ryu-e.tistory.com

3. webserver instance 생성 

 

 

하려는 작업 

1. jenkins 에서 ssh-keygen 생성

2. webserver에 1번에서 생성한 ssh public key 전달 

3. publish over ssh 셋팅 및 테스트

4. sourcecommit 의 git ssh 설정에 1번에 생성한 public key 등록

5. jenkins credentials 에 추가 

6. jenkins 프로젝트 생성후 git 연동 테스트 

 

 

1. jenkins 에서 ssh-keygen 생성

 

일단 jenkins 가 docker 위에 올라가 있음으로 container에 접근해야합니다

 

docker ps -a 로 상태 체크

 

jenkins 란 names을 가진 container로 접근하기 위해서 container id를 복사합니다

 

그런 후 docker exec -it [container id] /bin/bash 로 접속

 

docker container 의  jenkins home 경로는 /var/jenkins_home 입니다

 

cd /var/jenkins-home/    > jenkins home 으로 이동

ssh-keygen -t rsa -b 4096 -m PEM -f /var/jenkins_home/.ssh/id_rsa   >ssh key 를 -f 경로에 생성

cat .ssh/id_rsa.pub    > public key 확인

보시면 ssh-rsa 로 시작해서 맨뒤에는 root@ ~~~~ 로 끝납니다 ( root 계정으로 로그인하였고 , ssh-keygen시 id를 입력하지않앗음 )

 

위에 키 복사 

 

 

 

2. web server 에 로그인하여 1번에서 복사한 id_rsa.pub 키를 넣어줄 것입니다

mkdir .ssh

vi .ssh/authorized_keys

 붙여 넣기 후 저장

 

 

3. publish over ssh 설정

 

젠킨스를 웹으로 접속한 후 로그인

 

jenkins 관리 -> 시스템 설정 

 

 

 

publish over ssh 부분으로 이동 

PassPhrase 는 key생성시 안넣었으니까 비워두시면됩니다

Path to key 는 id_rsa 키가 있는 경로를 설정해주시면되여 

!!!!!!!!!!!key 넣을떄 -- begin 부터 ~~ end rsa private key -- 까지 다넣어주셔야해요 .. 

 

ssh servers 가 안보이실텐데 밑에 추가를 눌러주시면 됩니다.

 

name 은 우리가 부를 이름 ( 아무거나 넣어주시면되요 )

hostname 은 remote IPUsername 은 remote user id 를 넣어주면 됩니다.

 

 

Test configuration을 눌렀을때 Success가 나와야 됩니다.  안나오면 키생성부터 다시해보세요.

 

여기까지 완료됫으면 jenkins에서 원격 서버로 ssh 접속이 가능하다는 의미입니다.!!

 

 

4. 이제 soucecommit ( =git ) 과연동을 해볼게여 . sourcecommit의 경우 key 발급이 없어 jenkins에서 만든 ssh로 접근하는 방식을 사용해야 합니다 . 

 

아까 jenkins에서 생성한 ssh key pair 중 id_rsa.pub 에 있는 값을 다시 복사하고 source commit으로 이동해주세요

 

 

sourcecommit에 있는 git계정/git ssh설정 부분 클릭

 

 

git ssh 설정 클릭 - ssh 퍼블릭키 등록에 위에서 복사한 키를 넣어주시고 등록을 하면 아래 등록된 ssh 퍼블릭 키에 생성됩니다.

 

참고 https://guide.ncloud-docs.com/docs/ko/devtools-devtools-2-1

 

SourceCommit 사용 가이드 - SourceCommit

 

guide.ncloud-docs.com

 

 

 

5. jenkins credentials 에 추가 

 

 

 

global credentials = >  add credentials  클릭

 

 

kind를 ssh ~ with private key 로 바꾸고 

id는 식별이름

description은 알아서..

username에 저는 sourcecommit 의 id를 넣었는데 다른걸 넣어도되는지는 모르겟습니다.

그리고 enter directly 에 체크 후 add를 눌러서  1번에서 생성한 id_rsa를 복사해주세요 

 

원격지에 넣는건 public key ( id_rsa.pub )  jenkins 설정에 넣는건 id_rsa( private key ) 잘구분하셔야합니다.

 

이후 ok 를 눌러 저장 하면 됩니다.

 

 

 

6. 이제 jenkins에서 item을 만들어 연동이 되는지 확인할 차례입니다.

 

 

여기서 credentials 를 잡아주고 빨간글씨의 에러가 뜨지않으면 연결이 잘된것입니다.

 

 

이번엔 여기까지 진행하고 이제 다음에는 jenkins에서 git에 있는 소스를 가져와서 빌드 배포하는과정을 진행할 예정입니다

 

수고하세욥