본문 바로가기
DevOps/Jenkins

Linux/CentOS 7 Jenkins 설치하기(with Nginx)

by Deoking 2022. 11. 22.
반응형

Overview

젠킨스는 소프트웨어 개발 시 지속적인 통합(CI, Continuous Integration)과 지속적인 배포(CD, Continuous Delivery) 환경을 구축하기 위한 도구이다. 빌드, 테스트, 배포 과정을 자동화하여 유지 및 생산 효율성을 높입니다. 
본 글에서는 Docker를 통해 Jenkins 이미지로 설치를 진행하고 기본적인 설정 방법에 대해서 알아보겠습니다.

- 설치환경 : Linux/CentOS 7, Nginx, Docker


설치 환경 구성

도커를 통해 젠킨스를 설치할 예정이므로 도커 설치가 되어있지 않는 경우 아래 글을 참고하시어 설치하시기 바랍니다.

 

Linux/CentOS 7 Docker(도커) 설치하기

Overview 컨테이너 기반 가상화 도구로 CI/CD의 중추이자 컨테이너 이미지의 비공식 표준이기도 한 도커의 설치법 및 간단한 사용법에 대해 알아보겠습니다. - 설치환경 : Linux/CentOS 7 1. 도커란 무언

deoking.tistory.com

 

젠킨스 설치하기

 

1. 젠킨스 이미지 다운로드

도커 허브(Docker Hub)에서 최신 버전의 jenkins 이미지를 내려받습니다.

# pull 명령어로 이미지 파일을 받는다.
sudo docker pull jenkins/jenkins:lts

# 다운받은 도커 이미지 확인
sudo docker images

 

 

2. 도커 이미지 컨테이너 실행

내려받은 jenkins 이미지로 컨테이너를 생성합니다.

# 도커 이미지를 컨테이너로 실행.
sudo docker run -d -p 8282:8080 -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins:lts

옵션 설명

  • --detach, -d : 컨테이너를 생성하고 백그라운드에서 실행한다
  • -name : 컨테이너 이름 지정
  • --publish, -p : 컨테이너의 포트를 호스트에 게시
  • --volumes, -v : 볼륨 바인드 마운트 설정
  • --user, -u : 사용자 이름 또는 UID

 

 

3. 도커 실행 확인 및 초기 비밀번호 확인

젠킨스 컨테이너의 정상작동 여부를 확인합니다.

# 컨테이너 확인
sudo docker ps -a

# 결과
CONTAINER ID   IMAGE                 COMMAND                  CREATED        STATUS        PORTS                                                  NAMES
9e9259f32dcd   jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   6 months ago   Up 6 months   50000/tcp, 0.0.0.0:8282->8080/tcp, :::8282->8080/tcp   jenkins

# 로그 확인
sudo docker logs jenkins

 

아래 명령어로 젠킨스 컨테이너의 로그를 확인합니다.

# 로그 확인
sudo docker logs jenkins


정상적으로 설치된 경우 아래와 같이 초기 비밀번호를 확인할 수 있습니다.

 

 

4. Nginx 리버스 프록시 설정

다음으로, Nginx를 통해 리버스 프록시를 설정합니다.

server {
    listen       80;
    # 아래 도메인으로 접속하는 경우 리버스 프록시
    server_name  jenkins.domain.com;

    charset utf-8;
    access_log  /var/log/nginx/access.log  main;
    error_log   /var/log/nginx/error.log   warn;

    location / {
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;

	# 젠킨스 8282 포트로 연결.
        proxy_pass http://localhost:8282;
    }

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

 

 

5. 젠킨스 기본 설정

Docker를 통해 Jenkins 컨테이너가 정상적으로 구동되고 리버스 프록시 설정까지 완료되었다면 설정한 도메인으로 접속해 봅니다. 
예) http://jenkins.domain.com
접속 후 초기 준비 화면이 보일 수 도 있으나 준비가 완료 되면 아래와 같이 관리자 비밀번호를 입력하라는 창이 나타납니다.

초기 비밀번호는 아래 붉은색 글씨로 표시되는   /var/jenkins_home/secrets/initialAdminPassword 경로에서 확인이 가능합니다.
본 설명에서는 도커를 통해 설치 했기 때문에 위 경로로 접근을 위해서는 실행된 컨테이너에 접속이 필요합니다.

# 젠킨스 컨테이너 접속
sudo docker exec -it jenkins_container /bin/bash
# 실행 후 아래와 같이 새 세션이 실행됨.
root@9e9259f32dcd:/#

# 초기 비밀번호 확인 (root@9e9259f32dcd:/#)
sudo cat /var/jenkins_home/secrets/initialAdminPassword

 

위 명령어로 초기 비밀번호를 확인하고 입력한 뒤 'Continue' 클릭!

 

 다음으로 플러그인 설치에 대한 옵션을 선택할 수 있습니다.
1. 제안되는 플러그인 모두 설치(권장)
2. 선택한 특정 플러그인만 설치
'Install suggested plugins' 선택하여 제안되는 플러그인을 모두 설치합니다.

 

 

6. 젠킨스 계정 생성 및 인스턴스 URL 설정

플러그인 설치가 완료 되면 관리자 계정 생성을 진행합니다.
계정 정보를 모두 입력하고 'Save and Continue'를 클릭합니다.

 

다음으로 Jenkins 인스턴스의 URL을 설정하는 화면이 나오는데, URL 필드는 이미 입력된 값으로 진행합니다.

 

 

7. 젠킨스 설치 완료

마지막으로 'Jenkins is ready!'라는 문구와 함께 모든 설정이 완료되었고 Jenkins를 사용할 준비를 마쳤습니다.

 

'Start using Jenkins' 버튼을 클릭하면 최초 생성한 관리자 계정으로 로그인한 Jenkins 메인 화면으로 리다이렉트 됩니다.

 

 


Conclusion

CI/CD 도구는 Jenkins 외에도 Bamboo, Circle CI, TeamCity, Travis CI 등 많이 존재합니다. 그중에서 Jenkins를 선택한 가장 큰 이유는 완전 무료라는 점입니다. 부분적으로 무료 서비스를 제공하는 도구들도 있지만 그 사용의 한계가 분명하고 제대로 사용하기 위해서는 어느 정도 비용이 발생할 수밖에 없습니다. 때문에 무료이면서 기능에 제한이 없는 Jenkins는 좋은 선택이 될 수 있습니다.
또한 많은 사용자층에서 파생되는 많은 레퍼런스 및 자료들이 큰 도움이 되고, 지속적으로 발전하는 플러그인 생태계 또한 젠킨스의 큰 장점으로 생각됩니다.

추후에 비용으로부터 자유로운 환경이 된다면 효율적인 측면을 최우선으로 하는 CI/CD 파이프라인을 구축해볼 생각입니다.
-
본 글은 개인적 기록을 목적으로 작성하였습니다.
작게나마 도움 되셨기를 바라며, 더 좋은 의견이나 잘못된 부분이 있다면 댓글을 남겨주세요~

반응형

댓글