Jenkins 이용법

문철환·2024년 3월 4일

CICD에 입문해보자

목록 보기
8/16
post-thumbnail
  • CI(Continuous Integration): 빌드/테스트 자동화 프로세스
  • CD(Continuous Delivery): 배포 자동화 프로세스

젠킨스 컨테이너 띄우기

  • Jenkins설치 (Docker)

    sudo docker pull jenkins/jenkins:lts  # Java8, 11
    sudo docker pull jenkins/jenkins:jdk17 # Java17

  • 컨테이너 띄우기

    • Java 8,11
      sudo docker run -d --restart always --env JENKINS_OPTS=--httpPort=8080 -v /etc/localtime:/etc/localtime:ro -e TZ=Asia/Seoul -p 8080:8080 -v /jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose --name jenkins -u root jenkins/jenkins:lts
    • Java 17
      sudo docker run -d --restart always --env JENKINS_OPTS=--httpPort=8080 -v /etc/localtime:/etc/localtime:ro -e TZ=Asia/Seoul -p 8080:8080 -v /jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose --name jenkins -u root jenkins/jenkins:jdk17
  • 인바운드 규칙에 8080포트 넣어주기

  • 퍼블릭url : 8080으로 접속해보기

  • 이제 젠킨스컨테이너를 종료시키고, 환경변수 설정해주기

젠킨스 환경변수설정

  • 젠킨스 컨테이너 종료
sudo docker stop jenkins
  • 젠킨스 데이터가 있는 디렉토리에서 update-center-rootCAs 하위 디렉토리생성
sudo mkdir /jenkins/update-center-rootCAs
  • CA파일 다운로드
sudo wget https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/rootCA/update-center.crt -O /jenkins/update-center-rootCAs/update-center.crt
  • 젠킨스 플러그인 다운로드 시 미러사이트로 대체될 수 있도록 설정
sudo sed -i 's#https://updates.jenkins.io/update-center.json#https://raw.githubusercontent.com/lework/jenkins-update-center/master/updates/tencent/update-center.json#' /jenkins/hudson.model.UpdateCenter.xml
  • 젠킨스 컨테이너 재시작
sudo docker restart jenkins

젠킨스 접속

  • 젠킨스 비밀번호 찾기 (jenkins 설치 되어있는 컨테이너 안의 파일)
  1. 젠킨스 컨테이너 안으로 접속, bash쉘에 접속
sudo docker exec -it jenkins /bin/bash
  1. 해당 디렉토리 이동
cd /var/jenkins_home/secrets


3. 초기 비밀번호 확인하기

cat initialAdminPassword
  1. 해당 비밀번호로 젠킨스 접속
  • 기본 플러그인 설치

  1. 관리자 계정 설정
  • 서버 인스턴스 설정 확인(url)
  1. 젠킨스 홈 화면

젠킨스 내부에 도커 패키지 설치

  • (컨테이너 재시작시 해줘야하는 작업)
  • 젠킨스 컨테이너 접속
    sudo docker exec -it jenkins /bin/bash
    • DockerRepository 등록 및 docker-ce 패키지설치
      apt-get update && apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common && curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable" && apt-get update && apt-get -y install docker-ce
    • 도커 젠킨스에서 Host Docker 접근권한 부여
      groupadd -f docker
      usermod -aG docker jenkins
      chown root:docker /var/run/docker.sock

젠킨스 내부에 도커-컴포즈 설치

  • 젠킨스 컨테이너 접속
docker exec -it jenkins /bin/bash
  • 도커 컴포즈 다운
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • /usr/local/bin/docker-compose 권한 변경
chmod +x /usr/local/bin/docker-compose
profile
밝고 빛나게

0개의 댓글