[젠킨스 구축] 1. 젠킨스 설치 - f-lab-edu/jshop GitHub Wiki

이번 프로젝트에서는 젠킨스를 사용해 자동 테스트, 배포 환경을 구축하기로 했다.

나중에 다시 사용할 수 있게 젠킨스를 구축하는 과정을 한번 정리해 보려한다.

이번 프로젝트에서 사용하려는 기능은 크게 다음과 같다.

  1. 자동 테스트 (가장 중요)
  2. 컨테이너 자동 빌드, Naver Container Registry 배포
  3. 서버 자동 배포

위 기능들을 사용하기 위해 젠킨스를 사용하려 한다.

작업 흐름은 github를 사용해 버전관리를 하고, webhook을 사용해 jenkins로 알림을 보내 정의된 파이프라인을 실행시키려 한다.

젠킨스 설치

docker를 사용해 설치를 진행했다.

기존 젠킨스 이미지에다 내부에서 docker 를 사용하기 위해 몇가지 스크립트가 추가된 이미지를 사용한다.

FROM jenkins/jenkins:latest
USER root
RUN apt-get update -y
RUN apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
RUN apt-get update -y
RUN apt-get -y install docker-ce
RUN usermod -aG docker jenkins

위 Dockerfile 을 빌드해 jenkins 이미지로 사용한다.

docker run -d -p 8080:8080 \
-v /var/jenkins:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/{user}/.ssh:/root/.ssh
jenkins // 위에서 빌드한 이미지

추가된 몇가지 옵션은 다음과 같다.

  • -v /var/jenkins:/var/jenkins_home : 젠킨스 홈디렉토리를 호스트에 마운트 한다.
  • -v /var/run/docker.sock:/var/run/docker.sock : 젠킨스 컨테이너 내부에서 docker 명령어를 사용할 수 있도록 docker 소켓을 마운트 한다.
  • -v /home/{user}/.ssh:/root/.ssh : 젠킨스 컨테이너가 재시작하더라도, 인증키를 재사용하기 위해서 호스트의 키를 사용한다

설치를 진행하고 젠킨스 포트에 접근하면 젠킨스 UI를 사용해 이후 작업을 진행할 수 있다.

스크린샷 2024-06-07 20 26 48

최초 접속시 초기 관리자 비밀번호가 필요하다. 이는 컨테이너 로그에서 확인할 수 있다.

docker logs {container_name}

스크린샷 2024-06-07 20 27 38

초기 관리자 비밀번호를 입력하고, 추천 플러그인을 설치한다. 스크린샷 2024-06-07 20 28 17

설치가 완료되면 기본 유저를 생성하게 된다. 스크린샷 2024-06-07 20 31 10

유저를 생성하게 되면 젠킨스 대시보드 화면이 보이게 된다. 스크린샷 2024-06-07 20 31 51

기본 설치는 끝났다.