[CI/CD] 2. Jenkins 설정

bbolddagu·2023년 4월 24일
0

CI/CD 구축

목록 보기
2/3

Jenkins 설치

1. Jenkins 설치

1. Jenkins 이미지 Docker Hub에서 pull

docker pull jenkins/jenkins:lts
  • Jenkins LTS 버전은 Jenkins 커뮤니티에서 지원되는 가장 안정적인 버전

2. Jenkins 컨테이너 실행 (out of docker 방식)

sudo docker run -d -p 9090:8080 -v /var/run/docker.sock:/var/run/docker.sock -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts
  • docker run : Docker 컨테이너를 실행합니다.
  • -d : detached mode 로 실행합니다. (백그라운드에서 실행)
  • -p 9090:8080 : 호스트와 컨테이너 간의 포트 매핑을 지정합니다. 호스트의 9090 포트를 컨테이너의 8080 포트로 매핑합니다.
  • -v /var/run/docker.sock:/var/run/docker.sock : 호스트의 /var/run/docker.sock 파일을 컨테이너 내부의 /var/run/docker.sock 파일로 볼륨 마운트합니다. 이는 Docker 컨테이너 내부에서 Docker 데몬에 접근하기 위한 것입니다.
  • -v /jenkins:/var/jenkins_home : 호스트의 /jenkins 디렉토리를 컨테이너 내부의 /var/jenkins_home 디렉토리로 볼륨 마운트합니다. 이는 Jenkins 설정 파일 및 빌드 기록 등을 호스트에 저장하기 위한 것입니다.
  • --name jenkins : 컨테이너의 이름을 jenkins 로 지정합니다.
  • -u root : 컨테이너 내부에서 실행되는 프로세스의 UID 를 root 유저로 지정합니다. 이는 호스트에서 Docker 데몬에 접근하기 위해 필요한 권한을 부여하기 위한 것입니다.
  • jenkins/jenkins:lts : Jenkins 를 실행하는 Docker 이미지를 지정합니다. lts 태그는 Jenkins 의 LTS 버전을 의미합니다.

2. Jenkins 설정

  1. http://{server host}:8080으로 접속

  2. bash에서 비밀번호 확인

docker logs jenkins
  1. 확인한 비밀 번호 Jenkins 페이지에서 입력

  2. 'Install suggested plugins' 선택

  3. 계정 정보는 본인이 설정하고 싶은 대로 설정. (이후 젠킨스 접속 시 해당 정보 입력)

  4. 플러그인 추가 설치

  • 젠킨스 관리 ➡ 플러그인 관리 ➡ Available plugins
  • Gitlab, Gradle 플러그인 설치
  • jenkins 재시작
    - 만약 Jenkins 페이지에서 재시작이 정상적으로 동작하지 않는다면, 아래 명령어로 Jenkins 컨테이너 재시작
    docker restart {container_id 도는 container name}
  1. Gradle 버전 설정
  • Jenkins 관리 ➡ Global Tool Configuration ➡ Gradle
  • 아래와 같이 설정 (프로젝트 gradle버전과 통일)
  1. Time Zone 설정
  • Jenkins 관리 ➡ Manage Users ➡ admin 수정 ➡ User Defined Time Zone
  • Asia/Seoul로 변경

3. Gitlab WebHook 설정

1. Credential 등록

: gitlab webhook 등록 시 필요한 credential 등록

1-1. gitlab에서 accessToken 생성

  • gitlab 프로젝트 ➡ setting ➡ accessToken
  • Token name 설정 + 만료일 설정 + role : Maintainer

1-2. Jenkins에 credential 등록

  • Jenkins 관리 ➡ Manage Credential ➡ System ➡ Global credentials ➡ 상단 Add Credentials 클릭
  • 아래와 같이 입력

2. 프로젝트 생성

  1. 새로운 item 생성
  • item 이름 입력
  • Freestyle project 선택
  1. 소스코드 관리에서 gitlab과 연결
  • Repository URL: gitlab clone에서 URL주소
  • Credentials: 위에서 만들어둔 credential 선택
  • build할 소스가 있는 브랜치 입력
  1. 빌드 유발 설정
  • (빌드 유발 하단에 고급 버튼은 나중에 gitlab에서 webhook 설정 시 사용
  • 아래 그림과 같이 선택
  1. 빌드 스텝

# Execute shell 부분에 입력
docker build -t d101-server ./backend
docker rm -f d101-server || true
docker run -d -p 8090:8090 --name d101-server d101-server
  1. Webhook 설정
  • gitlab repository ➡ setting ➡ webhook 들어가기
  • webhook url 정보 입력 : "jenkins 빌드 유발 ➡ webhook url 정보"

  • webhook secret token 정보 입력 : "jenkins 빌드 유발 ➡ 고급탭 ➡ secret token Generate 버튼 클릭"

  • webhook test
    : 위와 같이 webhook 설정 및 생성 후, 아래와 같이 test탭이 생긴다.

    ➡ test에서 지정한 trigger 선택 후 아래와 같이 200 응답이 오면 정상적으로 webhook이 설정된것

0개의 댓글