본문으로 바로가기
  • Jenkins는 Java로 빌드 된 오픈 소스 CI (Continuous Integration) 및 CD (Continuous Delivery) 도구 입니다. Jenkins는 기본적으로 소프트웨어 프로젝트를 빌드, 테스트 및 배포합니다. DevOps 개발 도구의 가장 기본적인 도구 중에 하나입니다. 오늘은 Ubuntu 18.04에 Jenkins를 설치하는 방법을 보여 드리겠습니다.
  • 저는 Local PC에서 작성된 Maven프로젝트를 Github에 푸쉬하고 Jenkins가 이를 감지하고 자동으로 빌드부터 배포까지 간단하게 자동화하는 작업을 진행 해봤습니다.
  • 이글은 배포할 웹프로젝트와 우분투서버, Git, Maven, tomcat8, JDK는 미리 세팅되어 있다는 가정하에 작성되었습니다.

젠킨스 설치

  1. 저장소 Key를 다운로드 후에 source.list에 추가하고 apt-get을 이용하여 jenkins 설치합니다.
$ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -

$ echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

$ sudo apt-get install jenkins
  1. 젠킨스는 기본 포트를 8080으로 쓰기 때문에 다른 서비스와 충돌날 위험이 있어 변경 해줍니다.
$ sudo vi /etc/default/jenkins

HTTP_PORT=8080
이 부분을 원하는 포트 번호로 변경해줍니다.

HTTP_PORT=9090
저같은 경우에는 9090으로 작성했습니다.
  1. Jenkins 서비스 시작
sudo service jenkins restart

4.Jenkins 서비스 접속

젠킨스서버의 http:/ip:9090/ 주소를 입력하여 접속합니다.

처음 접속하게 되면 admin password를 입력해야 합니다.

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
를 입력하여 password를 복사 붙여넣기 해줍니다.

양 쪽 선택하는 화면인데요, 오른쪽은 직접 플러그인을 선택하여 설치할 수 있습니다.

왼쪽화면은 몇 몇 필수 플러그인들이 기본 설정되서 처음에 설치가 됩니다. 시간이 다소 오래걸리지만 이 글에선 왼쪽을 선택해주겠습니다.

설치가 완료되면 계정을 하나 만드는 창이 뜹니다. 이 계정은 Jenkins를 접속할 때 필요한 계정이므로 기억해두세요.

계정을 만든 후에 URL은 기본으로 놓고 저장합니다.

이제 Jenkins를 사용할 준비가 다 됐습니다.

  1. Jenkins 프로젝트 만들기
  • 좌측 새로운 Item을 클릭해줍니다.
  • 프로젝트 생성 메뉴가 나오면 이름을 입력해주고 Freestyle Project를 만들어줍니다.

프로젝트를 만들었으면 프로젝트로 들어가 '구성'메뉴를 눌러줍니다.

이제 빌드와 배포 설정을 해줄거에요.

  1. 젠킨스 자동빌드 및 자동배포 설정하기

General , 소스 코드 관리, 빌드 유발, 빌드 환경, Build, 빌드 후 조치 메뉴가 있습니다.

  • 소스코드관리 탭을 가줍니다.

젠킨스에서 빌드할 소스를 Git에서 가져오기 위해 리포지토리 URL를 입력해줍니다.

  • Build탭을 가줍니다.

Maven Version은 글로벌 설정된 Maven의 이름을 작성해줍니다. (글로벌 설정은 잠시후 진행합니다.)

Goals는 maven이 실행할 작업을 입력해줍니다. 이번에는 clean install만 진행해주겠습니다.

  • 빌드 후 조치 탭을 가줍니다.

이번 작업은 젠킨스관리 - 플러그인설치 - Deploy to container Plugin 설치 후 진행하셔야 합니다.

war/ear files 란에는 war,ear파일의 이름 또는 *표로 이름을 지정해주세요.

Context Path는 배포할 서비스의 (젠킨스의)컨텍스트 패스를 지정해주는거고, 공란으로 두시면 젠킨스 기본 컨텍스트 패스가 적용됩니다.

Containers에는 Tomcat 8.x Remote를 선택한 후 Tomcat URL은 톰켓 경로를 , Credentials에는 Tomcat 메니저에서 설정한 계정및 비밀번호를 적어줍니다.

(톰캣 매니저 설정 및 원격계정설정은 아래 포스팅을 참고해 주세요.)

Ubuntu tomcat8 설치 및 젠킨스 자동배포를 위한 tomcat8 manager 셋팅

이제 Buildnow를 누르면 빌드가 될겁니다.

  1. Github push시 자동 빌드하기
  • Github webhook을 이용하면 github에 push가 되면 jenkins에게 알려주고 빌드를 유발할 수 있습니다.

본인의 GitHub 프로젝트 Settings >> Webhooks >> Add Webhook 클릭

Payload URL : "http://본인의Jenkins주소/github-webhook/"

나머지 항목은 기본으로 설정하고 "Add webhook" 클릭

  • Github와 Jenkins를 연결하려면 Github Integeration Plugin이 필요하다.

    Jenkins관리 >> 플러그인 관리

설치 가능 탭 >> Github Integration 검색 >> 설치

  • Jenkins 설정

    만들어 놓은 프로젝트로 이동 → 구성 클릭

빌드 유발 탭 이동 >> GitHub hook trigger for GITScm polling 체크

모든 설정이 완료 되었다면, 이후 설정한 Branch에 Push를 하였을때, 자동으로 jenkins 빌드가 유발되는 것을 볼 수 있다.