CI/CD (통합/배포) 솔루션인 jenkins 는 중단없는 서비스 제공을 위한 솔루션의 하나야. 소스를 통합(Continuous Integration)하고, 통합된 소스를 서비스로 배포(Continuous Deployment)하는 과정을 책임지고 있지. Continous (지속적인) 가 공통적으로 붙어 있는게 중요해. CI/CD 에 대해서는 나중에 기회되면 자세하게 살펴보기로 하고, 일단 이 포스트에서는 jenkins 를 설치하고 설정하는 과정에 대해서 알아보려고 해.
설치하기
우분투 22.04 를 설치하는 방법에 대해서는 우분투 22.04 설치하기 – VMware VM 포스트를 참고하면 되겠어.
jenkins 는 자바를 필요로 하지. 그래서 먼저 자바를 설치해주어야 해. 버전은 openjdk 17 버전으로 설치할거야. (11 버전으로 설치하니까 jenkins 가 실행되지 않더라고)
$ sudo apt install openjdk-17-jdk
자바설치가 완료되었으니 자바 버전을 확인해볼께.
$ java -version

17.0.9 버전이 설치가 되었네.
이제 본격적으로 jenkins 를 설치해볼께.
jenkins 는 우분투 기본 패키지 리포지토리에서 제공되지 않아. 그래서 jenkins 패키지를 배포하는 리포지토리를 등록하는 작업부터 진행해야 해.
$ curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
$ echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
위 2개의 명령문으로 debian/ubuntu LTS 릴리스 설치 패키지에 대한 새로운 저장소 서명키 발급과 저장소 등록이 완료되지.

이제 리포지토리 를 갱신한 뒤에 jenkins 설치 명령을 내려보자.
$ sudo apt update
$ sudo apt install jenkins

설치가 완료되면 jenkins 서비스가 자동으로 시작되지. 서비스 실행 상태를 확인해볼께.
$ sudo systemctl status jenkins

이제 jenkins 설치 작업은 모두 완료되었어.
설정하기
젠킨스는 기본으로 8080 포트를 사용하여 서비스하지.

이 포트를 9191 로 변경하는 작업을 해볼거야. 수정할 곳은 총 3군데야.
우선 /etc/default/jenkins 파일에 대해서 수정해보자.
$ sudo vi /etc/default/jenkins

초기값 8080 을 주석처리하고 9191 값을 새로 입력했어.
이번에는 /etc/init.d/jenkins 파일을 수정해볼께.
$ sudo vi /etc/init.d/jenkins

check_tcp_port 항목값에 있는 8080 을 9191 로 수정해줬지.
마지막으로 서비스 설정파일 /lib/systemd/system/jenkins.service 파일을 수정해볼께.
$ sudo vi /lib/systemd/system/jenkins.service

젠킨스는 메모리 사용량이 많은 편이라 메모리 제한 설정을 추가로 해줄께.

이제 젠킨스를 다시 시작해보자.
$ sudo systemctl stop jenkins
$ sudo systemctl daemon-reload
$ sudo systemctl start jenkins

기존 포트 8080 이 아닌 새로 변경한 9191 포트가 대기중인 것을 확인할 수가 있지.
로그인 및 초기 설정
이제 브라우저에서 Jenkins Web UI 에 접속해볼께.
우선 초기 비밀번호를 확인해놓자.
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword


초기 비밀번호를 입력해서 잠금해제하면 플러그인을 설치하는 단계 화면이 표시되지.

여기에서 첫번째 버튼을 클릭해서 제안된 기본 플러그인들을 설치해주도록 할께.

플러그인 설치가 완료되면 관리자 계정을 등록하는 화면이 표시되지.

다음은 젠킨스 접속 URL 을 설정할 수 있어.

이제 jenkins 설치와 설정이 완료가 되었어.

Start using Jenkins 버튼을 클릭하면 관리자계정으로 초기 화면이 표시가 돼.

jenkins 를 활용하는 방법에 대해서는 다른 포스트에서 알아볼 생각이야.