본문 바로가기
카테고리 없음

젠킨스(Jenkins)

by Testengineer 2025. 3. 21.
반응형

CD 프로세스를 위해서 자동화 서버가 꼭 필요하다. 그러기위해서 젠킨스가 필요하다. 젠킨스는 단독으로 사용할 수도 있고, 도커와 같이 사용될 수도 있다. 

젠킨스 : 자바로 작성된 오픈 소스 자동화 서버이다. 젠킨스는 단순성, 유영성, 다양성 측면에서 유명하고 다른 솔루션에 비해 뛰어난 기능과 확작성 덕분에 가장 널리 사용되고 있다. 그 이유는 아래와 같은 다양한 장점 때문이다.

젠킨스는 많은 플러그인을 가지고 있으며, 대부분의 프로그래밍 언어와 프레임워크를 지원한다. 게다가 거의 모든 종류의 셸 명령어와 소프트웨어를 사용할 수 있기 때문에 특정 프로그래밍 언어에 대한 지식 없이도 자동화 프로세스를 구축할 수 있다.
젠킨스는 커뮤니티와 플러그인을 이용하기 좋다. 사용자가 직접 필요한 플러그인을 작성해 기능을 확장하는 것도 가능하다.
젠킨스는 자바로 개발되었기 때문에 대부분의 운영체제에서 실행 가능하다.
대부분의 소스 코드 관리 및 빌드 도구들과 통합이 가능하다.
마스터/에이전트 모드를 지원하므로 여러 컴퓨터로 노드를 분산해 실행하는 것이 가능하다. 게다가 다른 기종 환경에서도 실행되므로 노드마다 다른 운영체제가 설치되어있어도 가능하다.
설치와 구성과정이 단순하다. 
그리고 젠킨스 파이프라인은 코드로 저장된다. 또한 젠킨스의 구성도 YAML/XML 파일이나 그루비 스크립트로 가능하다. 이런 코드를 소스코드 리포지터리에 저장해 관리할 수 있고, 자동화하는데 도움을 준다.

 

 

젠킨스 설치방법

젠킨스 설치방법에는 여러가지 방법이 있고 필요에 따라 선택하면 된다.
자세한 내용은 아래 웹사이트에서도 확인할 수 있다.
https://www.jenkins.io/doc/book/installing/

 

Installing Jenkins

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

 

- servlet : 젠킨스는 기본적으로 WAR 형식의 웹 애플리케이션으로 배포되는 애플리케이션 서버 전용 솔루션이다. 모든 애플리케이션을 서블릿으로 배포하는 경우에 이 방식을 선택해서 설치한다.
- application : 젠킨스 WAR 파일은 Jetty 애플리케이션 서버를 포함하므로 자바 명령으로 직접 실행할 수 있다. 이때 필요한 것은 JRE이다. 베어메탈 서버를 사용하거나 한 시스템에 여러 젠킨스 인스턴스를 설치해야 하는 경우에 이 방법을 선택한다.
- 전용 패키지 : 대부분 젠킨스는 운영체제에 맞는 버전을 배포한다. 베어메탈 서버를 사용하는 경우 가장 간단하게 설치 및 구성을 하려면 이 방식을 선택한다.
- 도커 : 젠킨스는 도커 이미지 형태로도 배포된다. 도커 실행환경을 갖고 있다면 가장 간단한 설치 방법이다.
- 쿠버네티스 : 젠킨스는 쿠버네티스에서 설치, 관리 및 확장을 단순화 하는데 헬름 차트와 오퍼레이터를 제공한다. 가장 간단한 젠킨스 확장 및 관리를 위해서는 이 방식을 선택한다.
- 클라우드 : 젠킨스는 여러 플랫폼에서 SaaS 형식으로 호스팅 된다. 서버 유지 관리 및 젠킨스 설치에 대해 고민하고 싶지 않을때 사용한다.

*베어메탈 서버 : 하드웨어 상에 어떤 소프트웨어도 설치되어 있지 않은 상태. 즉, 가상화를 위한 하이퍼바이저 OS 없이 물리 서버를 그대로 제공하는 것을 뜻함.

 

도커를 이전에 이미 설치해두었음으로, 도커 방식으로 젠킨스를 설치하는 방식으로 설명하고자 한다.
https://www.jenkins.io/doc/book/installing/docker/#on-macos-and-linux

 

Docker

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

 

젠킨스 설치 과정

 

1. cmd 창을 열고 도커에서 브리지 네트워크 생성

docker network create jenkins


2. docker: dind Docker Image를 실행함

docker run --name jenkins-docker --rm --detach ^
  --privileged --network jenkins --network-alias docker ^
  --env DOCKER_TLS_CERTDIR=/certs ^
  --volume jenkins-docker-certs:/certs/client ^
  --volume jenkins-data:/var/jenkins_home ^
  --publish 2376:2376 ^
  docker:dind


3. 도커 데스크탑 버전에서 해당 내용 확인 가능


4. Jenkins Docker 이미지를 사용자 정의함

- 다음내용으로 Dockerfile 생성 (mkdir명령어를 사용해서 디렉터리를 만들고 > nano 명령어로 파일도 생성 > notepad 명령어 사용시 메모장으로 편집 가능 )

Dockerfile에 들어갈 내용은 아래의 코드와 같다.

FROM jenkins/jenkins:2.492.2-jdk17
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
  https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

- docker build -t myjenkins-blueocean:2.492.2-1 . (도커에서 이미지 생성 확인)

docker build -t myjenkins-blueocean:2.492.2-1 .


5. myjenkins-blueocean:2.492.2-1 다음 명령을 사용하여 Docker에서 컨테이너로 자신의 이미지를 실행함

docker run --name jenkins-blueocean --restart=on-failure --detach ^
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 ^
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 ^
  --volume jenkins-data:/var/jenkins_home ^
  --volume jenkins-docker-certs:/certs/client:ro ^
  --publish 8080:8080 --publish 50000:50000 myjenkins-blueocean:2.492.2-1

 

6. local host 페이지를 열게 되면, log에 찍힌 비밀번호를 찾아서 넣어야 함

http://localhost:8080/


7. suggested plugins 설치


8. 관리자 사용자 생성 (계정, 비밀번호, 이메일 설정)


9. 젠킨스에서 Hello World! 입력해서 확인해보기

 

New Item > Pipeline > Script를 작성하고 저장 후 빌드시 콘솔에서 확인가능함.

반응형

댓글