상단

소프트웨어 개발 생명 주기에 걸쳐서 코드 품질에 초점을 맞추고 있는 지속적인 통합 (CI, Continuous Integration) 도구인 Jenkins을 정리 한다. Jinkins은 지속적으로 빌드 하고 테스트 하는 CI 도구이면서 또한 외부에서 실행되는 배치 작업과 같은 것을 웹으로 모니터링 하는 도구 이다. Jenkins의 예전 이름이 Hudson 입니다.

 
 

CentOS에서 Jenkins 설치


'''Jenkins 설치'''

{| cellspacing="1" cellpadding="1" style="width: 100%;" 
|- | style="background-color: rgb(241, 241, 241);" | cd install
wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war

mkdir jenkins
cd jenkins
jar xvf ../jenkins.war
cd ..
chown -R root:tomcat jenkins
mv jenkins 
/cloudnas/www/jopenbusiness/webapps   #--- [Apache Tomcat](Apache Tomcat.md)의 ROOT 폴더

|}


'''Nginx환경 설정'''

vi /etc/nginx/sites-available/

{| cellspacing="1" cellpadding="1" style="width: 100%;" 
|- | style="background-color: rgb(241, 241, 241);" |     location ^~/jenkins/* {
      proxy_pass              http://localhost:8080;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        Host $http_host;
    }
 
|}


http://www.jopenbusiness.com:8080/jenkins/ 사이트로 접속하여 설치 진행

Red Hat에 Jenkins 설치

 
 

설치 가이드


다운로드 사이트에서 hudson.war 파일을 다운로드 한다.

[Apache Tomcat](Apache Tomcat.md)과 같은 서블릿 컨데이너의 webapps 디렉토리 아래에 hudson.war 파일을 두면 자동으로 설치가 된다.

http://localhost:8080/hudson/ 으로 접속하여 사용 한다.

 

/var/lib/jenkins/ Folder 구조

  • jobs/ : 작업 공간

  • *프로젝트명/config.xml : 프로젝트의 설정 정보

  • nodes/ : 

  • plugins/ : Plugin

  • secrets/

  • updates/

  • userContent/

  • users/ : 사용자 정보

  • workplace/ : 소스 등이 저장되는 공간

  • *프로젝트명/

 
 

사용자 가이드


 

Hudson의 주요 기능

  • Cluster된 빌드 환경 구축

  • 소스 코드 저장소 연동

    • [[Subversion|Subversion]], CVS

    • Accurev, BitKeeper, ClearCase, Git, Mercurial

    • Perforce, StartTeam, Team Foundation Server, Visual SourceSafe, URL SCM

    • 소스 관련 기능

      • Use Update

      • Repository Browser

     
  • 빌드 시스템 연동

    • [[Apache ANT|Apache ANT]], maven, unix/windows shell

    • Build Option

      1. Build after other projects are built

      2. Poll SCM

      3. Build periodically

     
  • 테스트 시스템 연동

 
 
 

관리자 매뉴얼


 

Tomcat 없이 바로 시작하기

Hudson은 [http://winstone.sourceforge.net/ Winstone] 서블릿 컨테이너가 포함되어 있기 때문에 [Apache Tomcat](Apache Tomcat.md)이 없어도 서비스가 가능 하다.

 java -jar hudson.war -httpPort=8080
 [http://localhost:8080/](http://localhost:8080/) 으로 접속하여 사용 한다.
 $HUDSON_HOME 환경 변수를 사용할 수도 있다.
 

Plugins

Locale plugin : 다국어 설정

Git plugin, Git client plugin : Git 연동

 

Git 연동

/var/lib/jenkins/.ssh/id_rsa.pub 파일을 생성 합니다.

"Jenkins 관리 -> 플러그인 관리 -> 설치 가능" 메뉴에서 "GIT plugin"을 설치 합니다. (GIT client plugin은 같이 설치 됩니다.)

"Jenkins 관리 -> 시스템 설정" 메뉴에서 설정을 합니다.

  • Git

  • *Name : Git_210

  • *Path to Git executable : /usr/bin/git

  • Git plugin

  • *Global Config user.name Value : consult

  • *Global Config user.email Value : consult@jopenbusiness.com

 
 
 
 

"새로운 Item" 메뉴에서 pnuskgh 프로젝트를 등록 합니다.

  • Item 이름 : pnuskgh

  • Freestyle project : check

 
 

pnuskgh 프로젝트의 "구성" 메뉴를 설정 합니다.

  • 소스 코드 관리 -> Git

  • *Repository URL :  ssh://consult@gerrit.osscloud.biz:29418/jopenbusiness

  • *Credentials : consult

  • **Kind : SSH Username with private key

  • **Scope : Global (Jenkins, nodes, items, all child items, etc)

  • **Username : consult

  • **Private Key : From the Jenkins master ~/.ssh

 
 

'''Jenkins Build 호출'''

hooks/post-receive 파일을 작성 합니다.

 #!/bin/bash
curl -X post http://www.osscloud.biz:8090/job/pnuskgh/build?token=build-access-token 
curl -X post http://username:password@JENKINS_URL:8080/view/VIEW_NAME/job/JOB_NAME/build?token=build-access-token 
 
 

참고 문헌


최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :