저희 회사는 현재 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 생성
아래 참조
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
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에 있는 소스를 가져와서 빌드 배포하는과정을 진행할 예정입니다
수고하세욥