사내 Jenkins를 도입하며 제가 기여했던 부분을 글로 정리합니다.
우리 회사에서는 개발 서버를 배포하기 위해 마련된 CI/CD 파이프라인이 존재하지 않아 매번 수동으로 서버를 배포할 수 밖에 없었습니다.
특히 정부와도 협업이 많았던 회사였기 때문에 개발기로 구버전의 CentOS를 이용하고 있었습니다.
때문에 오래된 Git 사용으로 인한 문제, Java 버전 불일치 등 매 배포마다 이러한 문제에 부딪혀 배포에만 2-3시간이 걸리는 비생산적인 상황이 발생하였습니다.
이런 수동적인 일련의 과정을 Jenkins로 대체하기 위해 기여했던 과정 중 첫 번째 과정에 대해 글로 남기고자 합니다.
Jenkins 공식 문서를 토대로 설명합니다. 자세한 내용은 공식 문서를 확인해주세요.
사내 개발기를 외부에서 사용할 수 없어 AWS EC2 환경에서 설명합니다.
EC2 환경
- Ubuntu 24.04
- SSH 키 인증 방식 사용
먼저 Jenkins의 GPG Key를 받기 위해 아래의 명령어를 입력합니다.
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
이후 Jenkins 저장소 정보를 저장하기 위해 아래의 명령어를 입력합니다.
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
마지막으로 APT 저장소를 업데이트하고 jenkins를 설치해줍니다.
sudo apt-get update
sudo apt-get install jenkins
Jenkins를 실행하기 위해서는 Java가 필요하기 때문에 Java도 추가적으로 설치해줍니다.
sudo apt update
sudo apt install fontconfig openjdk-17-jre
좋습니다! 이제 jenkins를 실행해볼까요?
아래의 명령을 입력해 Jenkins를 데몬 프로세스로 만듭니다.
sudo systemctl enable jenkins
그 다음 아래의 명령어로 Jenkins를 실행해봅시다.
sudo systemctl start jenkins
만약 에러가 발생한다면?
이런식으로 에러가 발생한다면journalctl -u jenkins.service
를 입력해 에러를 확인해봅시다.
보이시나요?jenkins: failed to find a valid Java installation
에러가 발생했네요.
Java를 설치했음에도 jenkins가 Java를 인식하지 못한 것 같네요.
공식문서에서는 Jenkins 데몬의 설정 정보를sudo systemctl edit jenkins
를 입력해 수정하라고 합니다.
해당 명령어를 입력하면 nano 에디터가 뜨면서 새 설정 파일에 대한 내용이 표시됩니다.
주석처리된 설정 파일을 살펴보니
기본JAVA_HOME
디렉토리가 저렇게 설정되어 있네요.
해당 라인의 주석을 해제하고 자신의 컴퓨터에 설치된 올바른 Java 경로를 입력하면 해당 에러는 사라지고 잘 실행됩니다.
만약, 이 글과 똑같이 따라했음에도 에러가 발생한다면 터미널을 종료하고 다시 실행해보세요.
Jenkins의 기본 포트 번호는 8080번입니다.
포트를 변경하고 싶다면?
8080번 포트는 Tomcat의 기본 포트라 다른 프로세스와 충돌이 발생할 수 있습니다.
이 때sudo systemctl edit jenkins
를 입력하여 Jenkins 설정을 수정해야 합니다.
Environment 앞의 주석을 해제하고 원하는 포트로 입력하면 포트가 변경됩니다.
http://{컴퓨터 IP 주소}:8080 주소로 접속하면 아래와 같은 초기화면이 나타납니다.
Jenkins를 사용하기 위해 초기 관리자 비밀번호를 입력하라고 하네요.
해당 비밀번호는 저 경로의 파일에 적혀있다고 합니다.
해당 경로의 파일을 열어서 확인해볼까요?
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
결과로 나온 문자열을 복사해서 비밀번호를 입력해줍니다.
우선 처음 설치하는 것이니 기본 플러그인만 설치해보겠습니다. (Install suggested plugins 선택)
플러그인 설치가 끝나면
폼 내용에 맞추어 첫 관리자 계정을 생성합니다.
추후 외부에서 Jenkins를 접속해야할 때 제공할 주소를 변경하는 과정입니다.
현재로서는 외부에서 접속할 일이 없기 때문에 기본으로 설정된 값으로 하고 넘어가겠습니다. (하단의 Save and Finish 선택)
이후 한 페이지를 더 넘어가면 드디어 Jenkins 홈 화면을 만나볼 수 있습니다!
Jenkins 설치를 성공적으로 마무리하고 초기 설정까지 완료해 홈 화면에 진입했습니다.
다음 글에서는 Freestyle Project를 생성해 첫 애플리케이션을 배포하겠습니다.