0. 개요
새로운 기능이나 수정이 있을 때, 직접 빌드 후 FTP 클라이언트로 새로운 빌드 파일을 올린 후 실행하던 기존의 수동 배포 방식을 개선하고자 사내망에 Jenkins를 도입하게 되었습니다. 우선 여러 솔루션들 중 특정 관제솔루션의 API 개발 서버 기준으로 CI/CD 파이프라인을 구축해서 위 과정을 자동화했으며 앞으로 확대할 예정입니다.
1. 환경 정보
- CentOS Linux release 7.9.2009 (Core)
- Jenkins 2.440.2
- Java 17
- Maven 3.9.6
- Git 1.8.3.1
2. Jenkins 설치하기
개발서버에 SSH로 접속 후 아래 순서대로 명령어를 입력하여 젠킨스를 설치합니다.
1. Jenkins 저장소 설정
Jenkins의 Yum 저장소 설정 파일을 시스템에 다운로드 및 저장합니다.
sudo wget -O /etc/yum.repos.d/jenkins.repo <https://pkg.jenkins.io/redhat-stable/jenkins.repo>
2. 저장소 키 가져오기
Jenkins 패키지를 검증하는 데 필요한 GPG 공개 키를 시스템 키 저장소에 추가합니다.
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
3. Jenkins 설치
Jenkins 패키지를 Yum을 통해 시스템에 설치합니다.
sudo yum install jenkins
4. 정상적으로 설치되었는지 확인
시스템에 설치된 패키지 목록에서 "jenkins" 문자열을 포함하는 패키지를 검색하고 출력해봅니다.
rpm -qa | grep jenkins
jenkins-2.440.2-1.1.noarch 처럼 출력이 된다면, 이제 jenkins가 정상적으로 설치된 것 입니다. (버전은 다를 수 있습니다.)
만약 우분투와 같은 Debian 계열의 리눅스에 설치해야 한다면 이 링크를 참고해주세요. (https://pkg.jenkins.io/debian-stable/)
3. 실행 포트 변경하기
Jenkins는 기본적으로 8080 포트에서 실행됩니다. 그러나 현재 해당 개발 서버에는 톰캣이 8080 포트로 서비스 되고 있기 때문에, 다른 포트를 지정해줍니다. (나중에는 Jenkins 서버를 분리할 예정인데, 그 때는 이 과정을 생략해도 될 것 같습니다.)
jenkins 설정 파일의 위치는 /usr/lib/systemd/system/jenkins.service 입니다.
vi 등의 도구를 이용해서 아래와 같이 포트를 변경해줍니다.
4. Jenkins 유저 권한 부여하기
Jenkins를 설치하면 일반적으로 시스템에 자동으로 jenkins 사용자가 생성됩니다. 이 사용자는 Jenkins 서비스가 실행될 때 사용되며, Jenkins Job과 관련된 파일 및 프로세스를 관리하는데 필요한 권한을 가집니다. 배포 시, 스크립트를 실행하는 등 sudo 권한이 필요한 경우를 위해서 jenkins 사용자에 대해 권한을 부여해야 합니다.
vi 등의 도구를 이용해서 /etc/sudoers 파일을 아래와 같이 편집해줍니다.
jenkins ALL=(ALL) NOPASSWD: ALL 를 추가해서 jenkins 사용자가 비밀번호 입력없이 sudo 접근할 수 있도록 허용해줍니다.
해당 설정은 jenkins 사용자에게 너무 많은 권한이 부여되어 보안 관점에서는 좋지 않은 방법이지만 편의를 위해 설정했습니다.
만약, 제한된 권한을 부여하고 싶다면 아래 예시와 같이 특정 명령어들을 지정해주면 됩니다.
jenkins ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/systemctl restart apache2
5. Jenkins 실행하기
먼저, 아래 명령어를 통해 Jenkins 서비스를 시스템 부팅 시 자동으로 시작하도록 설정합니다.
sudo systemctl enable jenkins
이제, 아래 명령어를 사용해 Jenkins 서비스를 시작합니다.
sudo systemctl start jenkins
6. 기본 플러그인 & 계정 생성
설정해둔 포트로 처음 접속하면 아래와 같은 Unlock Jenkins 페이지가 나오는데, 초기 관리자 비밀번호로 잠금을 해제해야 합니다.
초기 관리자 비밀번호는 /var/lib/jenkins/secrets/initialAdminPassword 파일에 담겨 있습니다.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
cat 명령어로 초기 관리자 비밀번호를 조회 후 Unlock Jenkins 페이지 Administrator password에 입력해줍니다.
이후 Customize Jenkins 페이지로 이동하게 되는데, Install suggested plugins 를 선택하여 일반적으로 많이 사용되는 플러그인들을 설치해줍니다.
플러그인 설치 후 Create First Admin User 페이지로 이동하면 계정 정보를 입력하고 사용자를 생성해줍니다.
계정 생성 후, Instance Configuration 페이지로 이동되면 Jenkins URL이 정상적으로 입력되어 있는지 확인하고 Save and Finish 버튼을 클릭합니다.
마지막으로 Jenkins is ready 페이지로 이동하면 Start using Jenkins 버튼을 클릭하면 홈화면으로 이동하게 됩니다.
다음 글에서는 Gitlab과 연동하는 방법에 대해 설명하겠습니다.
'🧑🏻💻 Develop > Devops' 카테고리의 다른 글
[Jenkins] GitLab과 연동하기 (1) | 2024.04.28 |
---|---|
[CI/CD] Elastic Beanstalk + Github Actions + Spring Boot CI/CD 적용기 (1) | 2023.10.15 |