[Jenkins] Jenkins 설정하기

leejk1072·2025년 1월 22일

클라우드

목록 보기
7/8
  • 1부: Jenkins 란?
  • 2부: Docker와 Jenkins
  • 3부: Jenkins 설정하기
  • 4부: Jenkins Pipeline

1. Jenkins 실행하기

아래 링크에 젠킨스를 실행 방법이 자세히 나와 있습니다.
🎉 젠킨스 실행 가이드

우선, 명령 프롬프트에서 아래 명령어로 docker를 실행할 겁니다.

docker run -d \                                     # 데몬 모드로 실행
  -p 8080:8080 \                                   # 호스트:컨테이너 포트 매핑
  -v jenkins_home:/var/jenkins_home \              # Jenkins 데이터 볼륨
  -v /var/run/docker.sock:/var/run/docker.sock \   # Docker 소켓 마운트
  --name jenkins \                                 # 컨테이너 이름 지정
  jenkins/jenkins:lts                              # Jenkins LTS 버전 이미지

✔️ 주요 옵션 설명

  1. -v jenkins_home:/var/jenkins_home
  • Jenkins 데이터를 영구적으로 저장하기 위해 볼륨을 지정합니다. <- 이거 안하면 컨테이너 다시 시작했을 때 모든 설정, 플러그인, 작업 기록 등등 다 초기화됨 ㅜ🥹
  1. -v /var/run/docker.sock:/var/run/docker.sock
  • 호스트의 Docker 데몬과 통신하기 위한 소켓 파일
  • DinD(Docker in Docker) 대신 권장되는 방식

컨테이너가 실행 중인 상태를 확인합니다.

docker ps



2. Jenkins 초기 설정

2-0. Jenkins 초기 비밀번호 확인
젠킨스를 실행한 주소(http://<호스트 IP>:8080)로 접속하면 초기 비밀번호인 Administrator password 칸을 입력해야 하는데요.

Jenkins 초기 비밀번호는 /var/jenkins_home/secrets/initialAdminPassword에 저장되어 있습니다. 다음 명령어로 확인할 수 있습니다

docker exec -it 컨테이너id cat /var/jenkins_home/secrets/initialAdminPassword

2-1. Jenkins 권한 설정
root 사용자로 컨테이너 내부에 접근합니다.

  docker exec -it -u root jenkins bash

필요한 패키지를 설치합니다.

  apt-get update
  apt-get install -y docker.io
  docker --version

Jenkins 사용자에게 Docker 권한을 부여합니다.

  # Docker 그룹이 없는 경우 생성
  groupadd -f docker
  
  # Jenkins 사용자에게 Docker 그룹 권한 부여
  usermod -aG docker jenkins

권한 설정을 확인합니다.

  ls -l /var/run/docker.sock

정상 출력 예시:

  srw-rw---- 1 root docker 0 Nov 29 00:03 /var/run/docker.sock

컨테이너의 docker.sock 파일의 소유 그룹이 docker여야 합니다.

여기서 권한 설정이 제대로 안 되면 jenkins에서 docker가 실행되지 않아 파이프라인이 멈추기 때문에.. 확인 잘해주세요

✔️ 권한 설정이 잘 안되었을 때 확인해볼 부분들은 아래와 같습니다.

1. docker.socket 권한 문제
Docker 소켓 파일의 소유 그룹이 docker가 아닌 경우, 아래 명령으로 변경:

  chown root:docker /var/run/docker.sock

2. 그룹 권한 문제
jenkins 사용자가 docker 그룹에 제대로 추가되었는지 확인:

  groups jenkins
  • 출력에 docker 그룹이 포함되어야 합니다.

3. 컨테이너 재시작
권한 변경 후 컨테이너를 재시작합니다

  # 컨테이너 밖에서 실행할 것
docker restart jenkins
  • usermod 명령은 현재 세션에 바로 적용되지 않습니다. Jenkins 사용자가 다시 로그인하거나 컨테이너를 재시작해야 적용됩니다.

3. Credentials 추가


아키텍처 따라 다르겠지만, 저는 깃허브와 AWS를 추가합니다.


먼저 GitHub Access Token을 발급받아야 합니다.


설정 페이지에서 가장 아래에 있는 Developer settings로 들어갑니다.


발급하시고
메모장에 토큰 저장하세요!!!!!

이 토큰값은 다시 확인할 수가 없어서 까먹으면 새로 발급해야 해요 ^-^


다시 젠킨스 Credentials 페이지로 돌아옵니다.


add credentials 클릭하면 아래와 같은 페이지가 나옵니다.


이렇게 추가해줍니다.


저는 이미지를 ECR에 push할거라 AWS도 추가해 줍니다.
DockerHub 사용하실 거면 당연히 Docker 계정 정보를 추가해야겠죠?

AWS IAM 사용자 생성 후 액세스 키 발급하시고 추가해 주세요.
이거는 과정이 좀 복잡해서 링크 첨부로 대신하겠습니다 🫡

📌 AWS Access Key 생성하기


4. 환경 변수 추가

여기서는 파이프라인을 구성할 때 필요한 환경 변수들을 저장합니다.
AWS 계정 정보(Account id, Region), ECR 레포지토리 이름 등을 저장해요.


이렇게 하면 젠킨스 기본 세팅은 어느 정도 된 겁니다.
다음엔 파이프라인 설정할 거예요 😙~

0개의 댓글