Jenkins (젠킨스)
젠킨스는 자바 오픈소스 소프트웨어이며 플러그인으로 다른 다양한 시스템들과 연동할 수 있습니다.
주요기능
- git과 연동
- 웹 인터페이스
- 테스트 보고서 생성
- 빌드 및 테스트 자동화
- 코드 품질 감시
- 인증 권한 관리
- 배포 관리 자동화
- 분산 빌드
- 그루비 스크립트를 사용한 잡 스케줄링
젠킨스 설치
젠킨스를 사용하려면 JDK와 메이븐이 필요합니다.
여기서는 JDK11 이상을 설치했다고 가정합니다.
젠킨스는 도커를 사용하거나 윈도우, 리눅스 용으로 포팅된 바이너리를 이용할 수 있습니다.
LTS 버전을 다운로드 받습니다.
여기서는 Generic Java package (.war) 을 다운받는다고 가정합니다.
Jenkins
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software
www.jenkins.io
1. 내려 받은 war 파일을 tomcat 서버에 deploy해도 되지만 아래 처럼 jre를 이용해서 바로 실행해도 됩니다.
D:\dev\jenkins\>java -jar jenkins.war
여기서는 D:\dev\jenkins\ 경로에 다운받은 jenkins.war 파일을 이동시켜놨다고 가정합니다.
그러면 war 파일 내부에 제티 웹 서버가 8080 포트로 실행되어 젠킨스를 사용할 수 있습니다.
2. 브라우저에서 http://localhost:8080/ 을 입력하면 관리자 패스워드 입력화면이 나옵니다.
3. Administrator password를 입력하고 continue를 누릅니다.
그러면 jenkins 실행시 나오던 로그에서 Please use the following password to proceed to installaton 문장 다음에 나오는 암호화키를 복사 붙여넣고 continue를 누르시면됩니다.
아니면 C:\User\사용자이름\.jenkins\secrets\initialAdminPassword 파일을 메모장으로 열면 위에 나오는 키를 확인할 수 있습니다.
설치시 예상치 않은 문제가 발생시 jenkins 인스턴스를 멈추고 위 jenkins 폴더를 삭제 후 다시 시도해 보십시오.
4. Install suggested plugins를 선택하면 젠킨스 추천 플러그인들이 같이 설치되고, Select plugins to install을 선택하면 필요한 플러그인을 직접 선택할 수 있습니다. 여기서는 Install suggested plugins를 선택하겠습니다.
그러면 플러그인이 인스톨되는 과정이 보여줍니다.
5. 플러그인 설치가 끝나면 관리자 정보 입력 화면이 나옵니다. 입력하고 Save and Finish 버튼을 클릭합니다.
6. URL설정이 나오고 Save and Finish 하면 설치가 종료됩니다.
윈도우 사용시 유니코드 적용
윈도우 환경에서 컴파일 시 문자 인코딩이 깨질 수 있어서 UTF-8 으로 설정합니다.
시스템>고급 시스템 설정>환경 변수>시스템 변수 항목에서 새로 만들기를 해서 다음과 같은 항목을 추가해줍니다.
- 시스템 변수 이름: JAVA_TOOL_OPTIONS
- 변수 값: -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
잡(job) 생성
1. 좌측 상단 새로운 Item 을 클릭합니다.
2. 적당한 이름을 넣고 아래 템플릿 중에서 Freestyle project 를 선택하고 OK합니다.
| FreeStyle project | 대부분의 젠킨스 설정을 할 수 있습니다. |
| Pipeline | 그루비 스크립트로 파이프라인을 작성할 때 사용합니다. |
| Multi-configuration project | 복수의 다른 환경의 서버에 각각 다른 설정을 할 때 사용합니다. |
| Folder | 폴더를 만들어 잡들을 그룹화 합니다. 하위 폴더도 만들 수 있습니다. |
| GitHub Organization | 깃허브의 조직 혹은 개인 단위로 자동화하는 플러그인 입니다. |
| Multibranch Pipeline | 브랜치의 빌드를 자동으로 그룹화해서, 새 브랜치가 푸시될 때마다 자동으로 새 젠킨스 잡을 만듭니다. |
3. 그러면 설정 메뉴가 생기는데, 깃허브에 있는 소스를 가지고 와서 빌드해봅시다.
4. 소스코드 관리 메뉴에서 Git을 선택하고 깃허브나 깃원격저당소의 URL을 복사해서 Repository URL에 붙여넣습니다.
5. 다음은 자격 증명을 추가합니다. ssh key를 이용하는 방법이나 깃허브 계정을 입력하는 방법 등이 있습니다. 여기서는 깃허브 계정을 등록합니다. Credentials 항목에 Add를 클릭하고 Jenkins 를 선택합니다.
6. Kind는 Username with password 상태로 두고 Username에 깃허브 ID를 Password에 깃허브 패스워드를 입력하고 Add 버튼을 클릭합니다.
7. Credentials 항목에 방금 추가했던 깃허브 계정을 선택하고 일단 Save 버튼을 누릅니다. 정상 작성되었다면 잡의 대시보드로 이동합니다.
8. 지금 빌드를 클릭해서 빌드해봅시다. 그러면 좌측 아래 Build history가 보이게 됩니다. history를 클릭해보면 자세한 정보가 보이는데 Console Output을 클릭해보면 콘솔 출력을 확인할 수 있습니다.
로컬 환경에서 애플리케이션 배포
빌드한 war 파일을 로컬 컴퓨터의 톰캣 서버에 배포하는 연습을 해봅니다.
여기서는 윈도우용 톰캣 9 버전을 기준으로 합니다.
tomcat 다운로드 및 설정
Apache Tomcat® - Welcome!
The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the Jakarta
tomcat.apache.org
여기서는 Windows.zip 으로 다운받습니다.
tomcat manager 기능을 사용하기 위해 적당한 곳에 압축을 풀고 압축을 푼 경로를 TOMCAT_HOME 이라고 하면 TOMCAT_HOME/conf/tomcat-users.xml 파일을 텍스트 에디터로 열고 <tomcat-users> </tomcat-users>태그 사이에 다음 내용을 추가해줍니다.
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="tomcat,admin-gui,manager-gui,manager-status,manager-script"/>
<user username="jenkins" password="jenkins" roles="tomcat,admin-gui,manager-gui,manager-status,manager-script"/>
젠킨스 서버가 8080 포트를 사용하기 때문에 톰캣의 기본 포트를 8088번으로 변경합니다.
TOMCAT_HOME/conf/server.xml 파일을 텍스트 에디터로 열어서 포트 번호를 8080에서 8088으로 변경해줍니다.
시스템 환경 변수에 JAVA_HOME과 JRE_HOME을 설치된 JDK 경로로 지정해줍니다.
그리고 나서 TOMCAT_HOME/bin/startup.bat 을 실행시킵니다.
정상 실행되면 브라우저로 http://localhost:8088 으로 접속해서 tomcat 화면이 나오면 정상입니다.

그리고 우측 상단 Manager App 버튼을 눌러서 아까 xml 파일에 추가했던 유저인 아이디 tomcat / 비번 tomcat 계정으로 로그인되는지 확인합니다.
manager app은 로컬 PC에서만 접속가능합니다. 다른 PC에서 접속하려면 추가 설정이 필요한데 여기서는 다루지 않겠습니다.
젠킨스 설정
젠킨스 설정에서 플러그인을 선택한 뒤 검색에서 deploy to container 플러그인을 설치해줍니다.
새로운 Item을 눌러서 새로운 job을 Freestyle project 으로 생성합니다.
여기서 이름은 DeployTomcatJob 으로 하겠습니다.
소스 코드 관리에서 깃허브 원격 저장소 URL을 이용해 war 파일 제작용 웹 프로젝트를 연결합니다.
예)https://github.com/사용자계정/spring-mvc-web-ex
그리고 Build Steps 설정에서 gradle 프로젝트이면 Invoke Gradle script를 선택하고 maven이라면 Invoke top-level Maven targets 을 선택합니다.
그리고 빌드 후 조치에서 Deploy war/ear to a container를 선택하고 아래와 같은 정보를 입력해줍니다.
이 내용은 예제일 뿐 프로젝트 상황에 맞게 잘 입력해야합니다.
WAR/EAR files: **/build/libs/*war
Context path: /spring
Containers 에 Add Container 항목을 눌러서 tomcat 9를 선택합니다.
Credentials 에 Add 버튼을 눌러 톰캣 매니저의 아이디와 패스워드를 입력해줍니다.
Tomcat URL은 위에서 설정했던 http://localhost:8088 을 입력해줍니다.
설정이 끝나면 save하고 지금 빌드를 눌러 빌드해봅니다.
톰캣 매니저 화면을 새로고침해서 실제로 배포가 되었는지 확인합니다.