How to use Jenkins - Basic

3 minute read

Written By Young-rae Shin(https://github.com/lived1024)

Jenkins

정의

소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴.
일명 Continuous Intergration (CI)라고 표현한다.
예를 들어 Git을 사용할 때, Git의 Repository에 Push가 감지되면, Jenkins에서 자동으로 Build, Deploy한다.

설치

Requirements

  • JAVA(openJDK도 가능)
  • MAVEN
  • Git

    설치 순서

  • 설치 파일 다운로드 : 공식 홈페이지 다운로드
    install1
    아래 화면에서 LTS버전으로 OS에 맞게 다운받는다!
    install2
    1. Window : 파일 압축해제 이후 설치파일 실행
    2. Ubuntu : 설치 방법은 해당 링크 참조
  • 초기 설정 포트
    Jenkins default port : 8080 -> ex) 8000 (본 문서에서는 port를 8000번으로 변경했다고 가정 후 진행)
    Windows : 설치폴더 내 jenkins.xml
    Ubuntu
      $vi /etc/default/jenkins
    

    Mac

      $vi /usr/local/Cellar/jenkins/2.x.x/homebrew.mxcl.jenkins.plist
    
  • Port변경 후 Jenkins 재시작 필요
    Window : Ctrl + Shift + Esc => Service => jenkins 우클릭 후 재시작
    Ubuntu
      $sudo service jenkins restart
    

    Mac

      $brew services stop jenkins
      $brew services start jenkins
    

실행

첫 실행

  • 주소창에 http://본인IP:8000 입력 (Window는 브라우저 자동 실행)
    run1
  • 위 화면 이후 아래와 같은 화면이 나온다.
    run2
  • 빨간색으로 강조된 경로에 있는 파일을 열어 해당 내용을 빈 칸에 넣는다.(스크린샷의 경로는 윈도우)
    run3
  • 플러그인은 추천받은 그대로 이용
    run4
  • 플러그인 설치화면을 넘어가면 admin 계정을 설정할 수 있다.
    run5
  • admin 계정을 추가하지 않는다면 Save and Continue
    run6
  • Jenkins에서 사용할 URL을 설정할 수 있다. 여기에서 Port를 다르게 적더라도 Jenkins 내부 설정파일에서 별도로 Port를 바꿔줘야 적용된다.
    Jenkins 설치 폴더의 jenkins.xml에서 변경할 수 있다.
    run7
    -위와 같은 화면이 나온다면 첫 실행은 성공적으로 진행된 것이다.

    Jenkins Settings : Jenkins 관리

    1. 시스템 설정 : Github Server 연동 설정
      Setting1
      Github Server의 Name은 알아서 넣고, URL은 그대로 놔둔다.
      그리고 Credentioal를 추가해야하는데 Github에서 토큰을 발급받아야한다.
      Setting2
      Setting3
      해당 페이지에서 발급!
      Setting4
      발급받은 Token을 아래 화면처럼 등록!
      Setting5
      Test 버튼을 누르면 정상적인 접속을 확인할 수 있다.
      Setting6
    2. Global Tool Configuration
      Maven, Java, Git에 대한 설정을 한다.
      Setting7
      Maven, Java는 설치폴더를, Git은 실행파일까지 Path를 잡아준다. (bin 폴더 내부의 git.exe)
      Setting8
    3. 플러그인 관리
      Build까지만 이용하려면 Git, Github 두 가지가 필요하지만 추천 플러그인에 포함되어있다.
      단순히 Build까지 활용한다면 추가로 설정할 내용은 없다.

Job 생성 및 설정

  1. 생성
    run1
    Freestyle project로 생성!
    run2
  2. 설정
    Github의 레파지토리를 아래 두 곳에 붙여넣는다.
    일반적인 http 프로토콜을 이용할 경우 에러가 발생하는 경우도 있다고 하니 git 프로토콜을 추천!
    run3
    깃 프로토콜은 아래에서 볼 수 있다.
    run4
    SSH를 이용하여 연동을 완료해야 정상적으로 연결된다.
    SSH 인증을 통과하지 못한다면 이전 스크린샷처럼 Repositories에 빨간 글씨로 표시된다.
    SSH키 생성은 아래 코드를 이용하면 된다
     $ssh-keygen -t rsa
    

    SSH키 발급은 아래의 절차대로 따르자
    run5-ssh1
    엔터만 눌러 발급할 경우 경로, 파일명은 default로 생성된다.
    스크린샷처럼 경로와 이름을 입력하면 그대로 생성.
    run5-ssh2
    pub확장자를 가진 파일은 아래처럼 등록!
    run6
    대상이 되는 Github Repository의 Settings - Deploy Keys
    run7
    pub확장자로 생성된 파일을 메모장 또는 vi로 열어 해당 내용을 Key에 입력하고, 다른 파일은 Jenkins에 사용
    run3
    위 스크린샷에서 빨간 글씨 밑의 Credentials에 추가!
    run8
    남은 파일 또한 메모장 또는 vi로 열어 해당 내용을 Credentials에 등록한다.
    문제없이 등록되면 아래 화면처럼 빨간 글씨가 사라진다.
    run9
    Branch 입력 부분은 입력하지 않으면 모든 브랜치에 해당되고, 특정 브랜치만 할 경우에 입력하면 된다.

  3. Build
    Build 탭에서는 아래처럼 Invoke top-level Maven targets를 추가하고 등록된 Maven을 이용한다.
    build1
    스크린샷과는 다르게 Goals에는 package -D maven.test.skip=true를 입력한다.
    -D maven.test.skip=true는 test코드를 실행해보지 않고 Build하는 옵션.

Build test

run-build
우측의 Console Output을 클릭하면 Build 상황에 대한 로그화면이 뜬다.
성공한 경우 아래처럼 뜬다.
run-success
스크린샷에는 war파일로 packaging이 설정되어있너 war로 build가 된 상황이고, 이것은 pom.xml에서 태그를 이용하면 간단하다.

Github Webhook setting (push -> auto build)

해당 Job의 구성에서 아래처럼 체크
webhook setting1
이후 대상이 되는 Github Repository - settings - Webhooks로 이동하고 추가!
webhook setting2
Payload URL에는 포트포워딩된 IP와 Port를 입력하고 /github-webhook/를 꼭 붙여준다!
Ex) http://127.0.0.1:9999/github-webhook/
Content type은 application/json 선택!
연결에 성공한 경우 아래 화면처럼 초록색 체크 표시가 생긴다.
hook status

이후 github에 push를 한다면 자동으로 build!

OS에 따른 settings

  • Mac에서 jenkins 설치시 localhost, 127.0.0.1만 허용되고 192.168.0.xx는 접속이 안되는 경우가 있었다.
    이 경우 아래 화면처럼 httpListenAddress를 삭제(or 주석)하면 정상적인 이용이 가능하다.
    Port도 해당 이 파일에서 수정가능 Mac default setting
    해당 파일 실행은 아래 command를 입력하면 된다.
     $vi /usr/local/Cellar/jenkins/2.x.x/homebrew.mxcl.jenkins.plist
    
  • Mac에서 jenkins 설정 시 default path (git의 경로는 “which git”으로 경로를 찾을 수 있다.) Mac default path
  • Ubuntu 기본 설정 파일 열기
     $vi /etc/default/jenkins  
    

Nexus를 이용한 배포(Deploy)

Build Path 변경

  1. [고급] 클릭
    Change workspace1
  2. Set custom workspace path
    Change workspace2

Leave a comment