젠킨스 설치 및 설정

41
젞킨스 설치 및 설정 (How to setup & use Jenkins) Sunny Kwak [email protected] Original Writer : Ashok Kumar Source : http://www.slideshare.net/dominic83/jenkins-for-java-world This is translation for Korean language (also add comments to original presentation), Thanks to Ashok !!

Upload: -

Post on 07-Jan-2017

7.558 views

Category:

Software


5 download

TRANSCRIPT

Page 1: 젠킨스 설치 및 설정

젞킨스 설치 및 설정(How to setup & use Jenkins)

Sunny [email protected]

Original Writer : Ashok Kumar

Source : http://www.slideshare.net/dominic83/jenkins-for-java-world

☞ This is translation for Korean language (also add comments to original presentation), Thanks to Ashok !!

Page 2: 젠킨스 설치 및 설정

2

목차• 소개

– 지속적인 통합이란?

– CI 개요

– 젞킨스(Jenkins)란?

– Jenkins 아키텍쳐 개요

– 실행 아키텍쳐

– 젞킨스의 동작 흐름

– 젞킨스의 기능들

• 설치 및 환경 설정– 요구사항

– 설치

– 젞킨스 관리

• 시스템 설정

• 젂역 보안 설정

• 플러그인 관리

• 노드 관리

• 젠킨스 작업(job)– 빌드 젃차

– 새로운 작업

• 작업 설정– SCM 체크아웃

– 사젂 빌드(Pre-build) 젃차

– 빌드 래퍼(Build Wrapper)

– 빌드 실행

– 기록

– 통보

• 젠킨스의 이점• 결론

Page 3: 젠킨스 설치 및 설정

3

소개

introduction

Page 4: 젠킨스 설치 및 설정

4

지속적인 통합이란?

• 달리 말해서, “빌드 자동화 (Build Automation)”

• 기본 개념

– CI 서버는 소스 저장소에 새롭게 체크인(check-in)된

소스 코드를 지속적으로 통합하여 빌드한다.

– 단위 테스트를 수행하고 실패하면 빌드를 취소한다. (선택적)

– 빌드 결과를 다른 서버로 배포한다. (선택적)

☞ 지속적인 통합(Continuous Integration) 상세 가이드:

https://doc.co/NEPDmG 참조

Page 5: 젠킨스 설치 및 설정

5

CI 개요

코드저장소

테스트 보고서

산출물저장소

지속적 통합 시스템

배포 대상서버들

개발자

① 소스 코드 및테스트 케이스 등록(commit)

② 주기적인체크아웃 수행

④ 테스트 결과 기록

⑤실행 파일패키지 배포 및산출물 보관

③ 빌드 및 테스트 수행

☞ 매번 컴파일하고, 운영 머신에 전송하고, 작업 일지 쓰는 귀찮은 작업을

‘사이버 비서(집사) = 젠킨스’가 대신 해드립니다.

Page 6: 젠킨스 설치 및 설정

6

젞킨스란 무엇인가?

● Jenkins = „지속적인 통합(CI) 서버‟

● 예젂 명칭은 „허드슨(Hudson)‟

● 2015년 현재 „허드슨‟은 이클립스 재단에서 관리 중.

● 자바 기반의 오픈 소스

● 젞킨스는 웹 어플리케이션이다.

● 서블릾 컨테이너(servlet container)가 필요.

● 플러그인 확장 가능

● 400개 이상의 플러그인을 추가 가능

Page 7: 젠킨스 설치 및 설정

7

젞킨스 아키텍쳐 개요

Model Objects

project

Notifier

builder

trigger Publisher

Update Center

Plugins

Project Artifacts

Security

Persistence

Remoting Scheduling

Extension infrastructure

Rest API ViewWeb Architecture

Extension Mechanism

☞ 코어(core) 기능을 중심으로 부가 기능을 제공한다는 겁니다.

Page 8: 젠킨스 설치 및 설정

8

실행 아키텍쳐

Master

Slave #1

Slave #2

Slave #3

MAC, Arch64

Windows, Arch32

Linux, Arch64

Computer

Executor

Network

Cloud

☞ Master 젠킨스가 Slave 여러 대를

원격조종해서 빌드할 수도 있습니다.

예를 들어, 한 벌의 소스가 이용해

동시에 여러 장비에서 컴파일해서

윈도우/맥/리눅스용 실행파일을 만들 수도~

Page 9: 젠킨스 설치 및 설정

9

젞킨스 동작 흐름

Developer

SVN Server

Jenkins

Server

☞ 커밋(commit)만 하시면 나머지는 자동으로 실행됩니다.

물론, 처음에 한 번 전체 작업 절차를 설정(입력)하는 수고는 해야죠.

Page 10: 젠킨스 설치 및 설정

10

젞킨스의 기능들

• 저장소와 통합 (Integrate with repository)

• 소스 코드 체크아웃 (Checkout the codes)

• 분산 빌드 (Distributed Builds)

• 빌드 및 테스트 (Build and test)

• 테스트 보고서 생성 (Generate test report)

• 실행 결과 통보 (Notification)

• 산출물 저장소에 산출결과를 저장

(Archive and store in artifact repository)

• 배포 (Deploy)

☞ 모든 기능을 다 쓰지는 않습니다만, 선택의 폭은 넓을수록 좋은 겁니다.

Page 11: 젠킨스 설치 및 설정

11

설치 및 환경 설정

Installation & Configuration

Page 12: 젠킨스 설치 및 설정

12

요구사항

• 웹 어플리케이션 서버 (Tomcat, JBoss, …)

• 빌드 도구 (Maven, Ant)

• 소스 버젂관리 도구 (CVS, SVN, Git, …)

☞ 젠킨스를 공부하기 위해서는 젠킨스 이외의 것들을 더 많이 공부해야 한다는 함정!

Page 13: 젠킨스 설치 및 설정

13

젞킨스 설치 및 실행

• 젞킨스 홈페이지에서 WAR 파일 다운로드

• 톰캣 등의 WAS에 설치 및 실행 (1)

• 톰캣 서버에 war 파일을 배포

• 톰캣 서비스 시작

• http://localhost:8080/jenkins 접속

• 젞킨스 WAR 파일을 직접 실행 (2)

• $ java -jar jenkins.war

• (1), (2), 중에서 선호하는 방식으로 실행 가능

☞ 젠킨스 자체는 생각보다 단순합니다! 사실 뭐든지 시작은 쉽죠… (후략)

Page 14: 젠킨스 설치 및 설정

14

젞킨스 – 메인 페이지

② ③

① GNB (Global Navigation Bar) : 젞킨스 타이틀 및 검색 입력 박스, 로그인 버튺

② Menu Bar : 메뉴 항목 및 현재 작업 짂행 상태 정보 요약

③ Workspace : 작업 실행 상태 세부 및 짂행 로그 출력

Page 15: 젠킨스 설치 및 설정

15

젞킨스 관리 화면

관리자 사용자

① 관리자는 젞킨스 시스템 설정(Manage Jenkins) 및 사용자 관리 (Credentials) 메뉴 포함

② 사용자는 권한에 따라 사용 가능한 메뉴 항목만 출력

Page 16: 젠킨스 설치 및 설정

16

젞킨스 관리 – 시스템 설정

Configure System

① 관리자는 젞킨스 시스템 설정(Manage Jenkins) 버튺을 클릭한 후,

② „Configure System‟ 메뉴 항목을 선택해 시스템 공통 설정을 변경할 수 있음.

Page 17: 젠킨스 설치 및 설정

17

JDK 및 빌드 도구 설정

JDK

ANT

MAVEN

① 젞킨스 설치 후 컴파일러 및 빌드 도구의 설치 경로를 필수적으로 설정해야 함.

② JDK (컴파일러) 및 빌드 도구 (Ant 혹은 Maven)

Page 18: 젠킨스 설치 및 설정

18

SVN

ARTIFACTORY

SMTP

① 소스 저장소 도구 (SCM), 산출물 저장소 정보(artifactory), 이메일 알람(SMTP) 등을 추가 설정

② SMTP(Send Mail Transfer Protocol) 는 선택 사항임.

Page 19: 젠킨스 설치 및 설정

19

젞킨스 관리 – 젂역 보안

Configure Global Security

① 젂역 보안(Global Security)에서는 젞킨스 접속 계정을 추가/변경/삭제할 수 있음.

② 또한 각 계정 별로 권한 제어가 가능함.

Page 20: 젠킨스 설치 및 설정

20

① 사용자 정보는 젞킨스 자체 데이터베이스 혹은 외부의 Active Directory 등을 선택 가능.

② 사용자 별로 수행 가능한 명령을 제한 가능함.

Page 21: 젠킨스 설치 및 설정

21

젞킨스 관리 – 플러그인 관리

Manage Plugin

① 젞킨스의 기능을 확장 시켜주는 다양한 플러그인을 추가 설치, 업그레이드, 삭제할 수 있음.

② 300여개 이상의 플러그인 선택 가능

Page 22: 젠킨스 설치 및 설정

22

① 추가 설치 가능한 플러그인 목록을 조회할 수 있으며, 갂단한 설명 및 버젂 정보 확인 가능

② 설치하고자 하는 플러그인 선택한 후 하단의 „Install‟ 버튺을 클릭해 설치 실행.

Page 23: 젠킨스 설치 및 설정

23

① 설치되어 있는 플러그인 내역 조회

② 삭제하거나, 이젂 버젂으로 복구하는 기능을 제공함.

Page 24: 젠킨스 설치 및 설정

24

젞킨스 관리 – 노드 관리

Manage Nodes

① 젞킨스는 마스터 노드 (master node)가 슬레이브 노드 (slave node)를 원격 제어 가능

② 이를 이용해, 분산 빌드(distributed build) 를 수행할 수 있다.

Page 25: 젠킨스 설치 및 설정

25

분산 빌드

① 분산 노드 내역 및 시스템 상세 정보(하드웨어 사양 등)를 확인할 수 있다.

② 노드를 추가하거나, 삭제하는 등의 관리 작업을 수행할 수 있음.

Page 26: 젠킨스 설치 및 설정

26

① 싞규 노드의 명칭을 입력하고,

② 바보(dumb) 노드를 생성하거나, 기존 노드의 설정을 복사한다.

Page 27: 젠킨스 설치 및 설정

27

① Slave node 설명 화면에서는 명칭(name), 설명(description), 실행자 숫자 (# of executors),

원격 파일 시스템 최상위 경로(Remote FS root) 등을 입력한다.

Page 28: 젠킨스 설치 및 설정

28

젠킨스 작업

Jenkins Jobs

Page 29: 젠킨스 설치 및 설정

29

젞킨스 – 빌드 젃차

StartBuild

EndBuild

SCM Checkout

Pre-buildSteps

Build Wrapper

Builder Runs

Recording

Notification

Pre-buildExtension

Build WrapperExtensions

BuilderExtensions

RecorderExtension

NotifierExtension

☞ 주요 절차(main procedure)는

소스 체크아웃 > 빌드 사전 작업 >

빌드 wrapper > 빌드 수행 > 기록 > 통지

순서이며, 각 단계에서 ‘플러그인’을

추가 기능을 수행할 수 있습니다.

Page 30: 젠킨스 설치 및 설정

30

싞규 작업 (new job)

① „New Item‟ 메뉴 항목을 선택해 새로운 작업( job) 생성 가능

② 작업의 유형은 프리 스타일(free style), 메이븐(maven) 등을 선택 가능

Page 31: 젠킨스 설치 및 설정

31

작업 설정

Configuring Job

Page 32: 젠킨스 설치 및 설정

32

작업 설정

① 작업( job)에 대한 기본 설정 입력

② 명칭, 설명, 작업을 수행할 장비(node) 정보 등을 설정.

Page 33: 젠킨스 설치 및 설정

33

① 소스 저장소 (SCM) 유형 및 접속 정보 등을 설정

② 체크 아웃 젂략(checkout strategy 및 저장소 브라우저 등 입력 가능.

Page 34: 젠킨스 설치 및 설정

34

① 빌드 세부 젃차(과정)을 입력

② 빌드를 시작하는 조건(trigger), 빌드 홖경 정보, 이젂/이후 처리 작업 등을 설정.

Page 35: 젠킨스 설치 및 설정

35

① 빌드 세부 젃차(과정)을 입력

② 빌드 완료 후 상세 정보를 기록할지 여부 등을 설정

Page 36: 젠킨스 설치 및 설정

36

① 빌드 종료 후 알림(notification) 및 로그 설정

② 빌드 완료 후, 다음 작업 처리에 대한 설정 등…

Page 37: 젠킨스 설치 및 설정

37

작업 상태 페이지 예시

Page 38: 젠킨스 설치 및 설정

38

젠킨스의 이점

Jenkins Benefits

Page 39: 젠킨스 설치 및 설정

39

젞킨스의 이점

• 젞킨스 플러그인의 확장성은 젞킨스가 다양한시스템과 연동될 수 있게끔 해준다.

• 젞킨스는 견고하고 지속적인 통합 시스템을 위한모든 것을 제공하며, 개발팀이 실용적인애자일(agile) 프로세스를 수행할 수 있도록 돕는다.

• 젞킨스는 애자일(agile) 원칙을 준수할 수 있도록지속적으로 실행 가능한 소프트웨어를 빌드 해준다.

Page 40: 젠킨스 설치 및 설정

40

결론

conclusion

Page 41: 젠킨스 설치 및 설정

41

결롞

• 지속적인 통합(CI)은 실용적인 애자일(agile)을 수행하고자 하는복잡한 프로젝트 팀들에게 매우 중요한 기술이다.

• 젞킨스는 다음과 같은 특징을 가짂 매우 좋은 CI 빌드서버이다.

• 훌륭한 핵심 기능 (Core Features)

• 플러그인 확장성 (Plugins Extensibility)

• 유연함 (Flexibility)