Jenkins-퀵 가이드
왜 Jenkins인가?
Jenkins는 continuous integration. Jenkins는 중앙 빌드가 수행되는 서버에 설치됩니다. 다음 순서도는 Jenkins의 작동 방식에 대한 매우 간단한 워크 플로를 보여줍니다.
Jenkins와 함께 때로는 다음과 같은 연관성을 볼 수 있습니다. Hudson. Hudson은 나중에 Oracle이 인수 한 Sun Microsystems에서 개발 한 매우 인기있는 오픈 소스 Java 기반 연속 통합 도구입니다. Oracle이 Sun을 인수 한 후 Hudson 소스 코드에서 포크가 생성되어 Jenkins가 도입되었습니다.
지속적 통합이란 무엇입니까?
지속적 통합은 개발자가 정기적으로 코드를 공유 저장소에 통합해야하는 개발 관행입니다. 이 개념은 빌드 라이프 사이클에서 나중에 발생하는 문제를 찾는 문제를 제거하기위한 것입니다. 지속적인 통합을 위해서는 개발자가 자주 빌드해야합니다. 일반적인 관행은 코드 커밋이 발생할 때마다 빌드가 트리거되어야한다는 것입니다.
시스템 요구 사항
JDK | JDK 1.5 이상 |
기억 | 2GB RAM (권장) |
디스크 공간 | 최소 요구 사항이 없습니다. 모든 빌드가 Jenkins 머신에 저장되므로 빌드 저장소에 충분한 디스크 공간을 사용할 수 있는지 확인해야합니다. |
운영 체제 버전 | Jenkins는 Windows, Ubuntu / Debian, Red Hat / Fedora / CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo에 설치할 수 있습니다. |
자바 컨테이너 | WAR 파일은 Servlet 2.4 / JSP 2.0 이상을 지원하는 모든 컨테이너에서 실행할 수 있습니다 (예 : Tomcat 5). |
Jenkins 다운로드
Jenkins의 공식 웹 사이트는 Jenkins 입니다. 주어진 링크를 클릭하면 아래와 같이 Jenkins 공식 웹 사이트의 홈페이지를 볼 수 있습니다.
기본적으로 최신 릴리스와 장기 지원 릴리스를 다운로드 할 수 있습니다. 이전 릴리스도 다운로드 할 수 있습니다. 다운로드 섹션에서 장기 지원 릴리스 탭을 클릭하십시오.
Jenkins war 파일을 다운로드하려면“오래되었지만 안정적인 버전”링크를 클릭하십시오.
Jenkins 시작
명령 프롬프트를 엽니 다. 명령 프롬프트에서 jenkins.war 파일이있는 디렉토리를 찾습니다. 다음 명령을 실행하십시오.
D:\>Java –jar Jenkins.war
명령이 실행 된 후 다양한 작업이 실행되며, 그중 하나는 winstone이라는 내장 웹 서버에 의해 수행되는 war 파일의 추출입니다.
D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/ .jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
큰 오류없이 처리가 완료되면 명령 프롬프트의 출력에 다음 줄이 표시됩니다.
INFO: Jenkins is fully up and running
Jenkins에 액세스
Jenkins가 실행되면 링크에서 Jenkins에 액세스 할 수 있습니다. http://localhost:8080
이 링크는 Jenkins 대시 보드를 표시합니다.
Jenkins Tomcat 설정을 위해 다음 전제 조건이 충족되어야합니다.
1 단계 : Java 설치 확인
Java 설치를 확인하려면 콘솔을 열고 다음 java 명령을 실행하십시오.
OS | 직무 | 명령 |
---|---|---|
윈도우 | 명령 콘솔 열기 | \> java –version |
리눅스 | 명령 터미널 열기 | $ java –version |
시스템에 Java가 제대로 설치되어 있으면 작업중인 플랫폼에 따라 다음 출력 중 하나가 표시됩니다.
OS | 산출 |
---|---|
윈도우 | 자바 버전 '1.7.0_60' Java (TM) SE 런타임 환경 (빌드 1.7.0_60-b19) Java Hotspot (TM) 64 비트 서버 VM (빌드 24.60-b09, 혼합 모드) |
리눅스 | 자바 버전 "1.7.0_25" JDK 런타임 환경 열기 (rhel-2.3.10.4.el6_4-x86_64) JDK 64 비트 서버 VM 열기 (빌드 23.7-b01, 혼합 모드) |
이 자습서를 진행하기 전에이 자습서의 독자가 시스템에 Java 1.7.0_60을 설치했다고 가정합니다.
Java JDK가없는 경우 Oracle 링크에서 다운로드 할 수 있습니다.
2 단계 : Java 설치 확인
시스템에서 Java가 설치된 기본 디렉토리 위치를 가리 키도록 JAVA_HOME 환경 변수를 설정하십시오. 예를 들면
OS | 산출 |
---|---|
윈도우 | 환경 변수 JAVA_HOME을 C : \ ProgramFiles \ java \ jdk1.7.0_60으로 설정합니다. |
리눅스 | 내보내기 JAVA_HOME = / usr / local / java-current |
Java 컴파일러 위치의 전체 경로를 시스템 경로에 추가하십시오.
OS | 산출 |
---|---|
윈도우 | 문자열을 추가하십시오. C : \ Program Files \ Java \ jdk1.7.0_60 \ bin을 시스템 변수 PATH의 끝에 추가합니다. |
리눅스 | 내보내기 PATH = $ PATH : $ JAVA_HOME / bin / |
위에서 설명한대로 명령 프롬프트에서 명령 java-version을 확인하십시오.
3 단계 : Tomcat 다운로드
Tomcat 의 공식 웹 사이트는 Tomcat 입니다. 주어진 링크를 클릭하면 아래와 같이 바람둥이 공식 홈페이지의 홈페이지를 볼 수 있습니다.
링크 찾아보기 https://tomcat.apache.org/download-70.cgi 바람둥이에 대한 다운로드를 얻으려면.
'바이너리 분포'섹션으로 이동합니다. 32 비트 Windows zip 파일을 다운로드합니다.
그런 다음 다운로드 한 zip 파일의 압축을 풉니 다.
4 단계 : Jenkins 및 Tomcat 설정
이전 섹션에서 다운로드 한 Jenkis.war 파일을 복사하여 tomcat 폴더의 webapps 폴더에 복사합니다.
이제 명령 프롬프트를 엽니 다. 명령 프롬프트에서 tomcat7 폴더가있는 디렉토리를 찾습니다. 이 폴더에서 bin 디렉토리를 찾아서 start.bat 파일을 실행하십시오.
E:\Apps\tomcat7\bin>startup.bat
큰 오류없이 처리가 완료되면 명령 프롬프트의 출력에 다음 줄이 표시됩니다.
INFO: Server startup in 1302 ms
브라우저를 열고 링크로 이동- http://localhost:8080/jenkins. Jenkins는 tomcat에서 실행됩니다.
이 연습에서는 Jenkins가 설치된 시스템에서 인터넷 연결이 있는지 확인해야합니다. Jenkins 대시 보드 (홈 화면)에서 왼쪽에있는 Jenkins 관리 옵션을 클릭합니다.
다음 화면에서 '플러그인 관리'옵션을 클릭합니다.
다음 화면에서 사용 가능 탭을 클릭하십시오. 이 탭은 다운로드 할 수있는 플러그인 목록을 제공합니다. '필터'탭에 'Git 플러그인'을 입력합니다.
그러면 목록이 필터링됩니다. Git 플러그인 옵션을 확인하고 '다시 시작하지 않고 설치'버튼을 클릭하십시오.
그러면 설치가 시작되고 화면이 새로 고쳐져 다운로드 상태가 표시됩니다.
모든 설치가 완료되면 브라우저에서 다음 명령을 실행하여 Jenkins를 다시 시작하십시오. http://localhost:8080/jenkins/restart
Jenkins가 다시 시작되면 작업을 구성하는 동안 Git을 옵션으로 사용할 수 있습니다. 확인하려면 Jenkins의 메뉴 옵션에서 새 항목을 클릭하십시오. 그런 다음 작업 이름을 입력합니다. 다음 경우 입력 한 이름은 '데모'입니다. 항목 유형으로 '자유형 프로젝트'를 선택합니다. 확인 버튼을 클릭합니다.
다음 화면에서 소스 코드 관리 섹션으로 이동하면 'Git'이 옵션으로 표시됩니다.
1 단계 : Maven 다운로드 및 설정
maven의 공식 웹 사이트는 Apache Maven 입니다. 주어진 링크를 클릭하면 아래와 같이 maven 공식 웹 사이트의 홈페이지를 볼 수 있습니다.
사이트를 검색하는 동안 파일 섹션으로 이동하여 Binary.zip 파일에 대한 링크를 다운로드합니다.
파일이 다운로드되면 관련 응용 프로그램 폴더에 파일 압축을 풉니 다. 이를 위해 maven 파일은 E : \ Apps \ apache-maven-3.3.3에 배치됩니다.
2 단계 : Jenkins 및 Maven 설정
Jenkins 대시 보드 (홈 화면)의 왼쪽 메뉴에서 Jenkins 관리를 클릭합니다.
그런 다음 오른쪽에서 '시스템 구성'을 클릭하십시오.
시스템 구성 화면에서 Maven 섹션이 보일 때까지 아래로 스크롤 한 다음 'Maven 추가'버튼을 클릭합니다.
'자동 설치'옵션을 선택 취소하십시오.
설정의 이름과 MAVEN_HOME의 위치를 추가하십시오.
그런 다음 화면 끝에있는 '저장'버튼을 클릭합니다.
이제 'Maven 프로젝트'옵션으로 작업을 생성 할 수 있습니다. Jenkins 대시 보드에서 새 항목 옵션을 클릭합니다.
Jenkins 내에서 옵션을 구성해야하는 이전 연습에서 몇 번 보셨을 것입니다. 다음은 Jenkins의 다양한 구성 옵션을 보여줍니다.
따라서 왼쪽 메뉴에서 'Manage Jenkins'옵션을 클릭하여 Jenkins에 대한 다양한 구성 옵션을 얻을 수 있습니다.
그러면 다음 화면이 표시됩니다.
시스템 구성을 클릭하십시오. 아래에서 수행 할 수있는 일부 Jenkins 구성 설정에 대해 설명합니다.
Jenkins 홈 디렉토리
Jenkins는 빌드를 수행하고 아카이브를 유지하기 위해 약간의 디스크 공간이 필요합니다. Jenkins의 구성 화면에서이 위치를 확인할 수 있습니다. 기본적으로 ~ / .jenkins로 설정되어 있으며이 위치는 처음에 사용자 프로필 위치에 저장됩니다. 적절한 환경에서 모든 관련 빌드 및 아카이브를 저장하려면이 위치를 적절한 위치로 변경해야합니다. 다음과 같은 방법으로이를 수행 할 수 있습니다.
서블릿 컨테이너를 실행하기 전에 "JENKINS_HOME"환경 변수를 새 홈 디렉토리로 설정하십시오.
"JENKINS_HOME"시스템 속성을 서블릿 컨테이너로 설정합니다.
JNDI 환경 항목 "JENKINS_HOME"을 새 디렉토리로 설정합니다.
다음 예제에서는 "JENKINS_HOME"환경 변수를 설정하는 첫 번째 옵션을 사용합니다.
먼저 새 폴더 E : \ Apps \ Jenkins를 만듭니다. 기존 ~ / .jenkins의 모든 내용을이 새 디렉토리로 복사합니다.
JENKINS_HOME 환경 변수가 시스템에 Java가 설치된 기본 디렉토리 위치를 가리 키도록 설정합니다. 예를 들면
OS | 산출 |
---|---|
윈도우 | 환경 변수 JENKINS_HOME을 원하는 위치로 설정하십시오. 예를 들어 E : \ Apps \ Jenkins로 설정할 수 있습니다. |
리눅스 | export JENKINS_HOME = / usr / local / Jenkins 또는 원하는 위치. |
Jenkins 대시 보드의 왼쪽 메뉴에서 Jenkins 관리를 클릭합니다. 그런 다음 오른쪽에서 '시스템 구성'을 클릭하십시오.
이제 홈 디렉토리에서 구성된 새 디렉토리를 볼 수 있습니다.
실행자 수
이는 Jenkins 시스템에서 발생할 수있는 동시 작업 실행의 총 수를 나타냅니다. 이는 요구 사항에 따라 변경할 수 있습니다. 때로는 더 나은 성능을 위해이 숫자를 시스템의 CPU 수와 동일하게 유지하는 것이 좋습니다.
환경 변수
모든 작업에 적용 할 사용자 지정 환경 변수를 추가하는 데 사용됩니다. 이들은 키-값 쌍이며 필요할 때마다 빌드에서 액세스하고 사용할 수 있습니다.
Jenkins URL
기본적으로 Jenkins URL은 localhost를 가리 킵니다. 컴퓨터에 대한 도메인 이름 설정이있는 경우이를 도메인 이름으로 설정하고 그렇지 않으면 localhost를 컴퓨터의 IP로 덮어 씁니다. 이렇게하면 $ {JENKINS_URL}로 액세스 할 수있는 환경 변수 JENKINS_URL을 사용하여 Jenkins URL에 직접 액세스 할 수 있으므로 슬레이브를 설정하고 이메일을 사용하여 링크를 보내는 데 도움이됩니다.
이메일 알림
이메일 알림 영역에서 이메일 발송을위한 SMTP 설정을 구성 할 수 있습니다. Jenkins가 SMTP 메일 서버에 연결하고 수신자 목록에 이메일을 보내는 데 필요합니다.
Jenkins를 관리하려면 왼쪽 메뉴에서 'Manage Jenkins'옵션을 클릭합니다.
따라서 왼쪽 메뉴에서 'Manage Jenkins'옵션을 클릭하여 Jenkins에 대한 다양한 구성 옵션을 얻을 수 있습니다.
그러면 다음 화면이 표시됩니다.
관리 옵션 중 일부는 다음과 같습니다.
시스템 구성
여기에서 JDK, Ant 및 Maven 버전, 보안 옵션, 이메일 서버 및 기타 시스템 전체 구성 세부 사항과 같은 빌드에서 사용할 다양한 도구에 대한 경로를 관리 할 수 있습니다. 플러그인이 설치된 경우. Jenkins는 플러그인이 설치된 후 필수 구성 필드를 동적으로 추가합니다.
디스크에서 구성 다시로드
Jenkins는 모든 시스템 및 빌드 작업 구성 세부 정보를 Jenkins 홈 디렉토리에 저장되는 XML 파일로 저장합니다. 여기에도 모든 빌드 이력이 저장됩니다. 한 Jenkins 인스턴스에서 다른 인스턴스로 빌드 작업을 마이그레이션하거나 이전 빌드 작업을 보관하는 경우 해당 빌드 작업 디렉터리를 Jenkins의 빌드 디렉터리에 추가하거나 제거해야합니다. 이를 위해 Jenkins를 오프라인으로 전환 할 필요는 없습니다. "디스크에서 구성 다시로드"옵션을 사용하여 Jenkins 시스템을 다시로드하고 작업 구성을 직접 빌드 할 수 있습니다.
플러그인 관리
여기에서 Git, Mercurial 또는 ClearCase와 같은 다양한 소스 코드 관리 도구에서 코드 품질 및 코드 커버리지 메트릭보고에 이르기까지 다양한 타사 플러그인을 설치할 수 있습니다. 플러그인 관리 화면을 통해 플러그인을 설치, 업데이트 및 제거 할 수 있습니다.
시스템 정보
이 화면에는 모든 현재 Java 시스템 속성 및 시스템 환경 변수 목록이 표시됩니다. 여기에서 Java Jenkins가 실행중인 버전, 실행중인 사용자 등을 정확하게 확인할 수 있습니다.
다음 스크린 샷은이 섹션에서 사용할 수있는 일부 이름-값 정보를 보여줍니다.
시스템 로그
시스템 로그 화면은 Jenkins 로그 파일을 실시간으로 볼 수있는 편리한 방법입니다. 다시 말하지만,이 화면의 주요 용도는 문제 해결입니다.
통계로드
이 페이지는 동시 빌드 수와 빌드 대기열의 길이와 관련하여 Jenkins 인스턴스의 사용량에 대한 그래픽 데이터를 표시하여 빌드가 실행되기 전에 기다려야하는 시간에 대한 아이디어를 제공합니다. 이러한 통계는 인프라 관점에서 추가 용량 또는 추가 빌드 노드가 필요한지 여부에 대한 좋은 아이디어를 제공 할 수 있습니다.
스크립트 콘솔
이 화면을 통해 서버에서 Groovy 스크립트를 실행할 수 있습니다. 내부 Jenkins 아키텍처에 대한 강력한 지식이 필요하므로 고급 문제 해결에 유용합니다.
노드 관리
Jenkins는 병렬 및 분산 빌드를 처리 할 수 있습니다. 이 화면에서 원하는 빌드 수를 구성 할 수 있습니다. Jenkins는 동시에 실행되며 분산 빌드를 사용하는 경우 빌드 노드를 설정합니다. 빌드 노드는 Jenkins가 빌드를 실행하는 데 사용할 수있는 또 다른 머신입니다.
종료 준비
Jenkins를 종료해야하거나 Jenkins 서버가 실행중인 경우 빌드가 실행될 때 그렇게하지 않는 것이 가장 좋습니다. Jenkins를 깨끗하게 종료하려면 Prepare for Shutdown 링크를 사용하여 새 빌드가 시작되지 않도록 할 수 있습니다. 결국 현재 빌드가 모두 완료되면 Jenkins를 완전히 종료 할 수 있습니다.
이 연습에서는 간단한 HelloWorld 애플리케이션을 선택하고 Java 프로그램을 빌드 및 실행하는 Jenkins에서 작업을 생성합니다.
Step 1 − Jenkins 대시 보드로 이동하여 새 항목을 클릭합니다.
Step 2− 다음 화면에서 항목 이름을 입력합니다.이 경우 이름은 Helloworld입니다. '자유형 프로젝트 옵션'을 선택하십시오.
Step 3 − 작업의 세부 사항을 지정할 수있는 다음 화면이 나타납니다.
Step 4− 빌드해야하는 파일의 위치를 지정해야합니다. 이 예제에서는 'HelloWorld.java'파일을 포함하는 로컬 git 저장소 (E : \ Program)가 설정되었다고 가정합니다. 따라서 아래로 스크롤하여 Git 옵션을 클릭하고 로컬 git 저장소의 URL을 입력하십시오.
Note− Github에서 호스팅되는 경우 저장소의 경우 여기에 해당 저장소의 URL을 입력 할 수도 있습니다. 이 외에도 원격 저장소에서 코드를 가져올 수 있도록 github 저장소에 사용자 이름과 비밀번호를 추가하려면 자격 증명에 대한 추가 버튼을 클릭해야합니다.
Step 5 − 이제 빌드 섹션으로 이동하여 빌드 단계 추가 → Windows 배치 명령 실행을 클릭합니다.
Step 6 − 명령 창에서 다음 명령을 입력 한 후 저장 버튼을 클릭합니다.
Javac HelloWorld.java
Java HelloWorld
Step 7 − 일단 저장되면 지금 빌드 옵션을 클릭하여 작업을 성공적으로 정의했는지 확인할 수 있습니다.
Step 8− 빌드가 예약되면 실행됩니다. 다음 빌드 기록 섹션은 빌드가 진행 중임을 보여줍니다.
Step 9− 빌드가 완료되면 빌드의 성공 여부가 빌드 상태에 표시됩니다. 우리의 경우 다음 빌드가 성공적으로 실행되었습니다. 빌드 내역에서 # 1을 클릭하여 빌드 세부 정보를 가져옵니다.
Step 10 − 콘솔 출력 링크를 클릭하면 빌드 세부 정보를 볼 수 있습니다.
위에 표시된 단계 외에도 빌드 작업을 생성하는 방법이 너무 많으며 사용 가능한 옵션이 많기 때문에 Jenkins를 환상적인 연속 배포 도구로 만듭니다.
Jenkins는 Junit에 대한 기본 기능을 제공하고 다른 기술에 대한 단위 테스트를위한 호스트 플러그인을 제공합니다 (예 : .Net 단위 테스트 용 MSTest). 링크로 이동하면https://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin 사용 가능한 단위 테스트 플러그인 목록이 제공됩니다.
Jenkins의 Junit 테스트 예
다음 예에서는
- Junit을 기반으로하는 간단한 HelloWorldTest 클래스.
- Jenkins 내에서 빌드 도구로 Ant를 사용하여 그에 따라 클래스를 빌드하십시오.
Step 1 − Jenkins 대시 보드로 이동하여 기존 HelloWorld 프로젝트를 클릭하고 구성 옵션을 선택합니다.
Step 2 − 빌드 단계 추가 섹션으로 이동하여 Ant 호출 옵션을 선택합니다.
Step 3 − 고급 버튼을 클릭합니다.
Step 4 − 빌드 파일 섹션에서 build.xml 파일의 위치를 입력합니다.
Step 5 − 다음으로 빌드 후 옵션 추가 옵션을 클릭하고 "Junit 테스트 결과 보고서 게시"옵션을 선택합니다.
Step 6− 테스트 보고서 XML에 아래와 같이 위치를 입력합니다. Reports가 HelloWorld 프로젝트 작업 공간에 생성 된 폴더인지 확인합니다. "* .xml"은 기본적으로 Jenkins에게 Junit 테스트 케이스 실행으로 생성 된 결과 xml 파일을 선택하도록 지시합니다. 이러한 xml 파일은 나중에 볼 수있는 보고서로 변환됩니다.
완료되면 끝에있는 저장 옵션을 클릭합니다.
Step 7 − 일단 저장되면 지금 빌드 옵션을 클릭 할 수 있습니다.
빌드가 완료되면 빌드의 성공 여부가 빌드 상태에 표시됩니다. 빌드 출력 정보에서 이제 테스트 결과라는 추가 섹션을 볼 수 있습니다. 우리의 경우에는 결과가 예와 같이 실패하도록 부정적인 테스트 케이스를 입력했습니다.
콘솔 출력으로 이동하여 추가 정보를 볼 수 있습니다. 하지만 더 흥미로운 점은 테스트 결과를 클릭하면 이제 테스트 결과의 드릴 다운을 볼 수 있다는 것입니다.
지속적 통합의 기본 원칙 중 하나는 빌드가 검증 가능해야한다는 것입니다. 특정 빌드가 빌드 프로세스의 다음 단계로 진행할 준비가되었는지 객관적으로 결정할 수 있어야하며이를 수행하는 가장 편리한 방법은 자동화 된 테스트를 사용하는 것입니다. 적절한 자동화 된 테스트 없이는 많은 빌드 아티팩트를 유지하고 직접 테스트해야하는데, 이는 지속적인 통합의 정신에 거의 맞지 않습니다. 다음 예제는 Selenium을 사용하여 자동화 된 웹 테스트를 실행하는 방법을 보여줍니다.
Step 1 − 플러그인 관리로 이동합니다.
Step 2− Hudson Selenium 플러그인을 찾아 설치를 선택합니다. Jenkins 인스턴스를 다시 시작합니다.
Step 3 − 시스템 구성으로 이동합니다.
Step 4 − 셀레늄 서버 jar를 구성하고 저장 버튼을 클릭합니다.
Note− 셀레늄 jar 파일은 SeleniumHQ 위치에서 다운로드 할 수 있습니다.
Selenium 독립형 서버의 다운로드를 클릭하십시오.
Step 5 − 대시 보드로 돌아가 HelloWorld 프로젝트에 대한 구성 옵션을 클릭합니다.
Step 6 − 빌드 단계 추가를 클릭하고“SeleniumHQ htmlSuite Run”옵션을 선택하십시오.
Step 7− 셀레늄 테스트에 필요한 세부 정보를 추가합니다. 여기서 suiteFile은 Selenium IDE를 사용하여 생성 된 TestSuite입니다. 저장을 클릭하고 빌드를 실행하십시오. 이제 포스트 빌드는 셀레늄 드라이버를 시작하고 html 테스트를 실행합니다.
Jenkins에는 빌드 프로젝트에 대한 이메일 알림을 추가 할 수있는 기본 기능이 함께 제공됩니다.
Step 1− SMTP 서버 구성. Jenkins 관리 → 시스템 구성으로 이동하십시오. 이메일 알림 섹션으로 이동하여 필요한 SMTP 서버 및 사용자 이메일 접미사 세부 정보를 입력합니다.
Step 2− Jenkins 프로젝트에서 수신자 구성-Jenkins 빌드 프로젝트를 구성 할 때 마지막에는 불안정하거나 손상된 빌드에 대한 이메일 알림을받을 수신자를 추가 할 수있는 기능이 있습니다. 그런 다음 저장 버튼을 클릭합니다.
기본값 외에도 시장에서 사용할 수있는 알림 플러그인도 있습니다. 예를 들어 Tikal Knowledge의 알림 플러그인은 JSON 및 XML 형식으로 작업 상태 알림을 보낼 수 있습니다. 이 플러그인을 사용하면 아래와 같이 끝점을 구성 할 수 있습니다.
다음은 각 옵션에 대한 세부 정보입니다.
"Format" − 이것은 JSON 또는 XML 일 수있는 알림 페이로드 형식입니다.
"Protocol" − 알림 메시지, HTTP, TCP 또는 UDP 전송에 사용할 프로토콜.
"Event" − 알림을 트리거하는 작업 이벤트 : 작업 시작됨, 작업 완료 됨, 작업 완료 됨 또는 모든 이벤트 (기본 옵션).
"URL"− 알림을 보낼 URL. 형식은 "http://host"HTTP 프로토콜,
"host:port"
TCP 및 UDP 프로토콜의 경우."Timeout" − 알림 요청을 보내는 시간 제한 (밀리 초), 기본적으로 30 초.
이전 섹션에서 설명했듯이, jUnit 테스트에 사용할 수있는 가장 간단한 보고서와 함께 사용할 수있는 많은보고 플러그인이 있습니다.
모든 작업에 대한 빌드 후 작업에서 생성 할 보고서를 정의 할 수 있습니다. 빌드가 완료되면 추가 드릴 다운에 테스트 결과 옵션을 사용할 수 있습니다.
Jenkins에는 다양한 Code Analysis 플러그인이 있습니다. 다양한 플러그인은 다음에서 찾을 수 있습니다.https://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins
이 플러그인은 정적 코드 분석 플러그인을위한 유틸리티를 제공합니다. Jenkins는 CheckStyle, FindBugs, PMD 등과 같은 다양한 코드 분석 도구에서 결과 파일을 구문 분석 할 수 있습니다. 해당 코드 분석 도구마다 Jenkins의 플러그인을 설치해야합니다.
또한 이러한 플러그인의 개별 결과를 단일 트렌드 그래프 및보기로 결합 하는 애드온 플러그인 Static Analysis Collector 를 사용할 수 있습니다.
플러그인은 다음과 같은 정보를 제공 할 수 있습니다.
- 작업의 총 경고 수
- 빌드의 새롭고 수정 된 경고 표시
- 빌드 당 경고 수를 보여주는 추세 보고서
- 모듈, 패키지, 범주 또는 유형별로 발견 된 경고 개요
- 심각도 (또는 신규 및 수정 됨)별로 선택적으로 필터링 된 발견 된 경고에 대한 자세한 보고서
정기적으로 빌드되는 크고 무거운 프로젝트가있는 인스턴스가있는 경우 때때로 많은 빌드 머신이 필요합니다. 그리고 이러한 모든 빌드를 중앙 시스템에서 실행하는 것이 최선의 선택이 아닐 수 있습니다. 이러한 시나리오에서 마스터 Jenkins 서버의 부하를 제거하기 위해 다른 Jenkins 머신을 슬레이브 머신으로 구성 할 수 있습니다.
때로는 빌드를 테스트하기 위해 여러 다른 환경이 필요할 수도 있습니다. 이 경우 슬레이브를 사용하여 필요한 각 환경을 나타내는 것은 거의 필수입니다.
슬레이브는 마스터에서 빌드 프로젝트를 오프로드하도록 설정된 컴퓨터이며 일단 설정되면이 작업 배포는 상당히 자동으로 이루어집니다. 정확한 위임 동작은 각 프로젝트의 구성에 따라 다릅니다. 일부 프로젝트는 빌드를 위해 특정 머신에 "고정"하도록 선택할 수 있고 다른 프로젝트는 슬레이브간에 자유롭게 로밍하도록 선택할 수 있습니다.
각 슬레이브는 "슬레이브 에이전트"라는 별도의 프로그램을 실행하므로 슬레이브에 전체 Jenkins (패키지 또는 컴파일 된 바이너리)를 설치할 필요가 없습니다. 슬레이브 에이전트를 시작하는 방법은 여러 가지가 있지만 결국에는 슬레이브 에이전트와 Jenkins 마스터가 작동하기 위해 양방향 통신 링크 (예 : TCP / IP 소켓)를 설정해야합니다.
Jenkins에서 슬레이브 / 노드를 설정하려면 아래 단계를 따르십시오.
Step 1 − Jenkins 관리 섹션으로 이동하여 노드 관리 섹션으로 스크롤합니다.
Step 2 − 새 노드를 클릭합니다
Step 3 − 노드 이름을 지정하고 Dumb slave 옵션을 선택한 다음 Ok를 클릭합니다.
Step 4− 노드 슬레이브 머신의 세부 정보를 입력합니다. 아래 예에서는 슬레이브 머신을 Windows 머신으로 간주하고 있으므로 "젠킨스가이 Windows 슬레이브를 Windows 서비스로 제어하도록 허용"옵션이 시작 방법으로 선택되었습니다. 또한 노드 시스템의 노드 이름 및 로그인 자격 증명과 같은 슬레이브 노드의 필수 세부 정보를 추가해야합니다. 저장 버튼을 클릭합니다. 이름이 "New_Slave"로 입력 된 레이블은이 슬레이브 시스템을 사용하도록 작업을 구성하는 데 사용할 수 있습니다.
위의 단계가 완료되면 새 노드 머신은 처음에 오프라인 상태가되지만 이전 화면의 모든 설정이 올바르게 입력되면 온라인 상태가됩니다. 필요한 경우 언제든지 노드 슬레이브 머신을 오프라인으로 만들 수 있습니다.
성공적인 빌드 후 각 애플리케이션 / 웹 서버에 빌드 파일을 전송하는 데 사용할 수있는 많은 플러그인이 있습니다. 예를 들어 "Deploy to container Plugin"이 있습니다. 이를 사용하려면 아래 단계를 따르십시오.
Step 1− Jenkins 관리 → 플러그인 관리로 이동합니다. 사용 가능 섹션으로 이동하여 "컨테이너 플러그인에 배포"플러그인을 찾아 플러그인을 설치합니다. Jenkins 서버를 다시 시작하십시오.
이 플러그인은 war / ear 파일을 가져 와서 빌드가 끝날 때 실행중인 원격 애플리케이션 서버에 배포합니다.
Tomcat 4.x / 5.x / 6.x / 7.x
JBoss 3.x / 4.x
Glassfish 2.x / 3.x
Step 2− 빌드 프로젝트로 이동하여 구성 옵션을 클릭합니다. "전쟁 / 귀를 컨테이너에 배포"옵션을 선택합니다.
Step 3− 컨테이너에 war / ear 배포 섹션에서 파일을 배포해야하는 서버의 필수 세부 정보를 입력하고 저장 버튼을 클릭합니다. 이제 이러한 단계는 성공적인 빌드 후 필요한 파일이 필요한 컨테이너에 배포되도록합니다.
Jenkins에는 일정 기간 동안 수행되는 빌드에 대한 메트릭을 표시하기 위해 사용할 수있는 다양한 플러그인이 있습니다. 이러한 메트릭은 빌드와 시간이 지남에 따라 실패 / 통과되는 빈도를 이해하는 데 유용합니다. 예를 들어 'Build History Metrics 플러그인'을 살펴 보겠습니다.
이 플러그인은 설치 후 모든 빌드에 대해 다음 메트릭을 계산합니다.
- MTTF (평균 고장 시간)
- MTTR (평균 복구 시간)
- 빌드 시간의 표준 편차
Step 1 − Jenkins 대시 보드로 이동하여 Manage Jenkins를 클릭합니다.
Step 2 − 플러그인 관리 옵션으로 이동합니다.
Step 3 − 사용 가능 탭으로 이동하여 '빌드 기록 메트릭 플러그인'플러그인을 검색하고 '다시 시작하지 않고 설치'를 선택합니다.
Step 4− 플러그인이 성공적으로 설치되었는지 확인하기 위해 다음 화면이 나타납니다. Jenkins 인스턴스를 다시 시작합니다.
작업 페이지로 이동하면 계산 된 지표가있는 표가 표시됩니다. 지표는 지난 7 일, 지난 30 일 및 모든 시간에 대해 표시됩니다.
Jenkins의 전반적인 추세를 보려면 빌드 및 Jenkins 내에서 정보를 수집하고 그래픽 형식으로 표시하는 데 사용할 수있는 플러그인이 있습니다. 이러한 플러그인의 한 가지 예는 'Hudson global-build-stats 플러그인'입니다. 이제이 단계를 진행해 보겠습니다.
Step 1 − Jenkins 대시 보드로 이동하여 Manage Jenkins를 클릭합니다.
Step 2 − 플러그인 관리 옵션으로 이동
Step 3 − 사용 가능 탭으로 이동하여 'Hudson global-build-stats 플러그인'플러그인을 검색하고 '다시 시작하지 않고 설치'를 선택합니다.
Step 4− 플러그인이 성공적으로 설치되었는지 확인하기 위해 다음 화면이 나타납니다. Jenkins 인스턴스를 다시 시작합니다.
글로벌 통계를 보려면 5-8 단계를 따르십시오.
Step 5− Jenkins 대시 보드로 이동하여 Jenkins 관리를 클릭합니다. Jenkins 관리 화면에서 아래로 스크롤하면 이제 'Global Build Stats'라는 옵션이 표시됩니다. 이 링크를 클릭하십시오.
Step 6− '통계 초기화'버튼을 클릭합니다. 이것이하는 일은 이미 수행 된 빌드에 대한 모든 기존 레코드를 수집하고 이러한 결과를 기반으로 차트를 만들 수 있다는 것입니다.
Step 7− 데이터가 초기화되면 새 차트를 생성 할 차례입니다. '새 차트 만들기'링크를 클릭합니다.
Step 8− 새 차트 세부 정보에 대한 관련 정보를 입력하는 팝업이 나타납니다. 다음 필수 정보를 입력하십시오.
- 제목 – 모든 제목 정보 (이 예에서는 '데모'로 제공됨)
- 차트 너비 – 800
- 차트 높이 – 600
- 차트 시간 척도 – 매일
- 차트 기간 – 30 일
나머지 정보는 그대로 유지 될 수 있습니다. 정보가 입력되면 새 차트 만들기를 클릭합니다.
이제 시간 경과에 따른 빌드의 추세를 보여주는 차트가 표시됩니다.
차트 내의 섹션을 클릭하면 작업 및 해당 빌드의 세부 정보를 드릴 다운 할 수 있습니다.
다음은 수행 할 몇 가지 기본 활동이며, 그중 일부는 Jenkins 서버 유지 관리를위한 모범 사례입니다.
URL 옵션
Jenkins 인스턴스 URL에 추가되는 다음 명령은 Jenkins 인스턴스에서 관련 작업을 수행합니다.
http://localhost:8080/jenkins/exit − 젠킨스 종료
http://localhost:8080/jenkins/restart − 젠킨스 재시작
http://localhost:8080/jenkins/reload − 구성을 다시로드하려면
Jenkins 홈 백업
Jenkins 홈 디렉토리는 Jenkins가 작업, 빌드 등에 대한 모든 정보를 저장하는 드라이브의 위치 일뿐입니다. Jenkins 관리 → 시스템 구성을 클릭하면 홈 디렉토리의 위치를 볼 수 있습니다.
여유 디스크 공간이 가장 많은 파티션에 Jenkins 설정 – Jenkins는 정의 된 다양한 작업에 대한 소스 코드를 가져오고 연속 빌드를 수행하므로 항상 충분한 하드 디스크 공간이있는 드라이브에 Jenkins가 설정되어 있는지 확인합니다. 하드 디스크 공간이 부족하면 Jenkins 인스턴스의 모든 빌드가 실패하기 시작합니다.
또 다른 모범 사례는 Jenkins가 설정된 디스크가 가득 차는 것을 방지하기 위해 정리 작업을 수행 할 수있는 크론 작업 또는 유지 관리 작업을 작성하는 것입니다.
Jenkins는 지속적인 배포 및 배포를 제공하기위한 좋은 지원을 제공합니다. 배포를 통한 소프트웨어 개발의 흐름을 살펴보면 다음과 같습니다.
지속적 배포의 주요 부분은 위에 표시된 전체 프로세스가 자동화되도록하는 것입니다. Jenkins는 다양한 플러그인을 통해이 모든 것을 달성하며, 그중 하나는 이전 강의에서 보았던 "컨테이너 플러그인에 배포"입니다.
실제로 지속적 배포 프로세스를 그래픽으로 표현할 수있는 플러그인이 있습니다. 그러나 먼저 Jenkins에서 다른 프로젝트를 만들어 이것이 어떻게 작동하는지 가장 잘 볼 수 있습니다.
QA 단계를 에뮬레이트하고 Helloworld 애플리케이션을 테스트하는 간단한 프로젝트를 만들어 보겠습니다.
Step 1− Jenkins 대시 보드로 이동하여 New Item을 클릭합니다. '자유형 프로젝트'를 선택하고 프로젝트 이름을 'QA'로 입력합니다. Ok 버튼을 클릭하여 프로젝트를 생성합니다.
Step 2 −이 예에서는 간단하게 유지하고이 프로젝트를 사용하여 Helloworld 애플리케이션에 대한 테스트 프로그램을 실행합니다.
이제 프로젝트 QA가 설정되었습니다. 빌드를 수행하여 제대로 빌드되는지 확인할 수 있습니다.
Step 3 − 이제 Helloworld 프로젝트로 이동하여 구성 옵션을 클릭하십시오.
Step 4 − 프로젝트 구성에서 'Add post-build action'을 선택하고 'Build other projects'를 선택합니다.
Step 5− '빌드 할 프로젝트'섹션에서 빌드 할 프로젝트 이름으로 QA를 입력합니다. 옵션을 기본값 인 'Trigger only if build is stable'로 둘 수 있습니다. 저장 버튼을 클릭합니다.
Step 6− Helloworld 프로젝트를 빌드하십시오. 이제 콘솔 출력이 표시되면 Helloworld 프로젝트가 성공적으로 빌드 된 후 QA 프로젝트 빌드도 수행되는 것을 볼 수 있습니다.
Step 7− 이제 Delivery pipeline 플러그인을 설치하겠습니다. Jenkins 관리 → 플러그인 관리로 이동하십시오. 사용 가능한 탭에서 'Delivery Pipeline Plugin'을 검색합니다. 다시 시작하지 않고 설치를 클릭합니다. 완료되면 Jenkins 인스턴스를 다시 시작합니다.
Step 8 − 작동중인 Delivery 파이프 라인을 보려면 Jenkins 대시 보드에서 '모두'탭 옆의 탭에서 + 기호를 클릭합니다.
Step 9 −보기 이름의 이름을 입력하고 'Delivery Pipeline View'옵션을 선택합니다.
Step 10− 다음 화면에서 기본 옵션을 그대로 둘 수 있습니다. 다음 설정을 변경할 수 있습니다.
- '정적 분석 결과 표시'옵션이 선택되어 있는지 확인하십시오.
- '전체 빌드 시간 표시'옵션이 선택되어 있는지 확인하십시오.
- 초기 작업의 경우 – 빌드해야하는 첫 번째 작업으로 Helloworld 프로젝트를 입력하십시오.
- 파이프 라인의 이름을 입력하십시오.
- 확인 버튼을 클릭합니다.
이제 전체 딜리버리 파이프 라인의 훌륭한보기를 볼 수 있으며 전체 파이프 라인에서 각 프로젝트의 상태를 볼 수 있습니다.
또 다른 유명한 플러그인은 build pipeline plugin. 이것을 살펴 보겠습니다.
Step 1− Jenkins 관리 → 플러그인 관리로 이동합니다. 사용 가능한 탭에서 'Build Pipeline Plugin'을 검색합니다. 다시 시작하지 않고 설치를 클릭합니다. 완료되면 Jenkins 인스턴스를 다시 시작합니다.
Step 2 − 작동중인 빌드 파이프 라인을 보려면 Jenkins 대시 보드에서 '모두'탭 옆의 탭에서 + 기호를 클릭합니다.
Step 3 −보기 이름의 이름을 입력하고 'Build Pipeline View'옵션을 선택합니다.
Step 4− 선택한 초기 작업에서 기본 설정을 수락하고 Helloworld 프로젝트의 이름을 입력해야합니다. 확인 버튼을 클릭합니다.
이제 전체 딜리버리 파이프 라인의 훌륭한보기를 볼 수 있으며 전체 파이프 라인에서 각 프로젝트의 상태를 볼 수 있습니다.
Jenkins 내에서 사용 가능한 모든 플러그인 목록을 얻으려면 다음 링크를 방문하십시오. https://wiki.jenkins-ci.org/display/JENKINS/Plugins
우리는 이미 플러그인 설치에 대한 많은 인스턴스를 보았습니다. 플러그인과 관련된 다른 유지 관리 작업을 살펴 보겠습니다.
플러그인 제거
플러그인을 제거하려면 Jenkins 관리 → 플러그인 관리로 이동합니다. 설치됨 탭을 클릭하십시오. 일부 플러그인에는 제거 옵션이 있습니다. 이 버튼을 클릭하여 플러그인을 제거 할 수 있습니다. 제거 후 Jenkins 인스턴스를 다시 시작해야합니다.
다른 버전의 플러그인 설치
때로는 이전 버전의 플러그인을 설치해야 할 수도 있습니다.이 경우 Jenkins 웹 사이트의 관련 플러그인 페이지에서 플러그인을 다운로드 할 수 있습니다. 그런 다음Upload 플러그인을 수동으로 업로드하는 옵션.
Jenkins에서는 Jenkins 인스턴스에 대한 사용자 및 관련 권한을 설정할 수 있습니다. 기본적으로 모든 사람이 Jenkins에서 작업 또는 기타 관리 작업을 정의 할 수있는 것은 아닙니다. 따라서 Jenkins에는 보안 구성을 적용 할 수있는 기능이 있습니다.
Jenkins에서 보안을 구성하려면 아래 단계를 따르십시오.
Step 1 − Jenkins 관리를 클릭하고 '전역 보안 구성'옵션을 선택합니다.
Step 2− 보안 활성화 옵션을 클릭합니다. 예를 들어 Jenkins가 자체 사용자 데이터베이스를 유지하기를 원하므로 Security Realm에서 'Jenkins'own user database '옵션을 선택합니다.
기본적으로 중앙 관리자가 시스템에서 사용자를 정의하기를 원하므로 '사용자 등록 허용'옵션이 선택 취소되어 있는지 확인하십시오. 나머지는 그대로두고 저장 버튼을 클릭 할 수 있습니다.
Step 3− 첫 번째 사용자를 추가하라는 메시지가 표시됩니다. 예를 들어 시스템에 대한 관리자를 설정하고 있습니다.
Step 4− 이제 시스템에서 사용자를 설정할 차례입니다. 이제 Jenkins 관리로 이동하여 아래로 스크롤하면 '사용자 관리'옵션이 표시됩니다. 이 옵션을 클릭하십시오.
Step 5− 관리자 사용자를 정의한 것처럼 시스템에 대한 다른 사용자 생성을 시작합니다. 예를 들어, 우리는 'user'라는 다른 사용자를 생성하고 있습니다.
Step 6− 이제 기본적으로 누가 무엇에 액세스 할 수 있는지 권한을 설정할 시간입니다. Jenkins 관리 → 전역 보안 구성으로 이동합니다.
이제 Authorization 섹션에서 'Matrix based security'를 클릭하십시오.
Step 7− 사용자 그룹 목록에 사용자가 표시되지 않으면 사용자 이름을 입력하고 목록에 추가하세요. 그런 다음 사용자에게 적절한 권한을 부여하십시오.
관련 인증을 정의한 후 저장 버튼을 클릭합니다.
이제 Jenkins 보안이 설정되었습니다.
Note − Windows AD 인증의 경우 Jenkins에 Active Directory 플러그인을 추가해야합니다.
Jenkins에는 Jenkins와 관련된 중요한 구성 설정을 백업하는 데 사용할 수있는 백업 플러그인이 있습니다. 아래 단계에 따라 백업을 수행하십시오.
Step 1 − Jenkins 관리를 클릭하고 '플러그인 관리'옵션을 선택합니다.
Step 2− 사용 가능한 탭에서 '백업 플러그인'을 검색합니다. 다시 시작하지 않고 설치를 클릭합니다. 완료되면 Jenkins 인스턴스를 다시 시작하십시오.
Step 3− 이제 Jenkins 관리로 이동하여 아래로 스크롤하면 옵션으로 '백업 관리자'가 표시됩니다. 이 옵션을 클릭하십시오.
Step 4 − 설정을 클릭합니다.
Step 5− 여기서 정의 할 기본 필드는 백업을위한 디렉토리입니다. Jenkins 인스턴스가 설정된 드라이브와 다른 다른 드라이브에 있는지 확인합니다. 저장 버튼을 클릭합니다.
Step 6 − 백업 관리자 화면에서 'Backup Hudson 구성'을 클릭하여 백업을 시작합니다.
다음 화면에 백업 상태가 표시됩니다.
백업에서 복구하려면 백업 관리자 화면으로 이동하여 Hudson 구성 복원을 클릭합니다.
백업 목록이 표시되면 적절한 항목을 클릭하여 복원 시작을 클릭하여 백업 복원을 시작합니다.
셀레늄 테스트와 같은 웹 테스트는 마스터 슬레이브 및 셀레늄 스위트 플러그인 설치를 통해 원격 슬레이브 머신에서 실행할 수 있습니다. 다음 단계는이 구성을 사용하여 원격 테스트를 실행하는 방법을 보여줍니다.
Step 1− 마스터 슬레이브 구성이 제자리에 있는지 확인하십시오. 마스터 Jenkins 서버로 이동합니다. Jenkins 관리 → 노드 관리로 이동하십시오.
노드 목록에서 DXBMEM30 레이블은 슬레이브 머신입니다. 이 예에서 마스터 및 슬레이브 시스템은 모두 Windows 시스템입니다.
Step 2 − DXBMEM30 슬레이브 머신에 대한 구성을 클릭합니다.
Step 3 − 시작 방법이 'Java Web Start를 통해 슬레이브 에이전트 시작'으로 설정되어 있는지 확인합니다.
Step 4− 이제 슬레이브 머신으로 이동하여 Jenkins 마스터 인스턴스에 대한 브라우저 인스턴스를 엽니 다. 그런 다음 Jenkins 관리 → 노드 관리로 이동하십시오. DXBMEM30으로 이동하여
Step 5 − DXBMEM30 인스턴스를 클릭합니다.
Step 6 − 아래로 스크롤하면 'Java Web Start'시작 옵션 인 시작 옵션이 표시됩니다.
Step 7− 보안 경고가 표시됩니다. 수락 확인란을 클릭하고 실행을 클릭하십시오.
이제 Jenkins Slave 창이 열리고 연결된 것을 볼 수 있습니다.
Step 8− 슬레이브에서 실행되도록 테스트 구성. 여기서 생성되는 작업이 특히 셀레늄 테스트 만 실행하도록되어 있는지 확인해야합니다.
작업 구성에서 '이 프로젝트를 실행할 수있는 위치 제한'옵션이 선택되어 있는지 확인하고 레이블 식에 슬레이브 노드의 이름을 입력합니다.
Step 9− 작업의 셀레늄 부분이 구성되었는지 확인하십시오. Sample.html 파일과 selenium-server.jar 파일도 슬레이브 시스템에 있는지 확인해야합니다.
위의 모든 단계를 수행하고 빌드를 클릭하면이 프로젝트는 예상대로 슬레이브 머신에서 Selenium 테스트를 실행합니다.