상용 서버 패치를 자동화 한다.
기존 서버 배포 과정
- 빌드 서버에서 git pull을 통해 소스를 가져온다.
- 빌드 서버에서 maven을 사용하여 서버를 빌드 한다.
- 상용 서버에서 톰캣 종료 및 war 삭제
- 상용 서버에서 빌드 서버에서 war 카피
- 상용 서버에서 톰캣 실행
- 3 ~ 5까지 과정을 다른 상용서버에서도 진행을 한다.
젠킨스란?
: 소스코드 리포지토리에 대한 통합 및 배포(Continuous Integration)를 위한 서비스를 제공한다.
: 커밋 -> 빌드 -> 테스트 -> 배포의 자동화 서비스를 제공한다.
: 일련의 과정을 자동화 하기 위해 파이프라인을 선언적, 스크립트로 작성이 가능하다.
젠킨스 설치 (Mac OS)
- https://jenkins.io/ war 파일 다운로드
- http://tomcat.apache.org/ tomcat 설치
- tomcat webapps/ 에 jenkins.war 파일 복사
- tomcat 서버 실행
- 젠킨스 초기 비밀번호 입력
- 플러그인 설치 (권장, 선택), 권장 선택
- 초기 페이지 화면
젠킨스 Job 설정
- New Item 클릭
- 이름, 설명 입력
- GitHub project 체크 후 Project Url 입력 ( 대쉬보드 링크용 )
- 소스코드 관리에서 Git 정보 설정, Repository URL, Credentials 에 Add를 사용해서 Id, password 입력, Branch 입력
- 빌드에서 Maven 선택 Goals에 Maven 명령어 입력 (clean package ..)
- 빌드에서 Send files or execute commands over SSH 선택 (Public Over SSH 플러그인 설치 및 설정이 되어있어야 한다.)
Public Over SSH 플러그인
: 원격 서버에서 쉘스크립트 실행을 도와주는 플러그인
: 플러그인 설치 후 시스템 설정에서 Publish over SSH 설정 정보 입력
슬렉과 연동하기
: http://www.yocto.co.kr/2016/01/slack-jenkins.html
: 슬렉 토큰 하나로 모든 채널 사용 가능
: 슬렉 토큰은 Jenkins Certificate 에 저장하여 사용한다. (보안)
슬레이브 노드 추가하기
: http://namgh.blogspot.kr/2016/01/jenkins-slave.html
Project Template
: http://kingbbode.tistory.com/35
: Parameterized Trigger Plugin 설치
: 파라미터를 받아 파이프라인을 진행하는 프로젝트를 만들면, 해당 프로젝트가 템플릿 프로젝트가 된다. ( 해당 프로젝트는 병렬실행이 가능하게 설정, 아니면 병목 발생 )
: Parameterized Trigger Plugin으로 템플릿 프로젝트를 실행시킨다.
: 장점은 빌드 과정을 템플릿화 시킬 수 있다.
: 단점은 템플릿을 사용한 프로젝트에서 템플릿에서 실행된 콘솔 정보를 보기 위해서 템플릿 콘솔 정보를 찾아가야한다.
서버 배포 젠킨스 최종 모습
톰캣없이 실행하기
java -jar jenkins.war --httpPort=30030