웹사이트 검색

Rocky Linux 9에 Jenkins를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 록키 리눅스 9
  • 록키 리눅스 8.4

이 페이지에서

  1. 전제 조건
  2. 자바 OpenJDK 설치
  3. Jenkins 저장소 추가
  4. Jenkins 설치
  5. httpd를 리버스 프록시로 설치 및 구성\n
  6. 방화벽 구성\n
  7. Jenkins 초기 구성
  8. 첫 번째 Jenkins 빌드 만들기
  9. 결론

Jenkins는 CI/CD(Continuous Integration/Continuous Delivery)를 위한 오픈 소스 자동화 도구입니다. 프로젝트 빌드, 배포 및 자동화를 위한 1000개 이상의 플러그인을 지원하여 완전히 Java로 작성되었습니다. Jenkins는 자동화를 통해 개발 프로세스를 가속화하는 선도적인 자동화 도구 중 하나가 되었습니다. Jenkins는 빌드, 문서, 테스트, 패키지, 준비, 배포, 정적 분석 등과 같은 개발 수명 주기 프로세스를 통합합니다.

Jenkins는 Git, Subversion, Mercurial, CVS, Perforce 및 RTC와 같은 여러 버전 제어 도구를 지원합니다. 또한 Apache Ant, Apache Maven, 쉘 스크립트 및 Windows 배치 명령을 실행할 수 있습니다. Jenkins는 광범위한 문서와 Wiki를 통해 강력한 커뮤니티 지원을 제공하므로 Jenkins는 가장 많이 사용되는 자동화 CI/CD 도구 중 하나입니다. 또한 개발 및 배포 프로세스를 자동화하기 위한 다양한 도구, 언어 및 자동화 작업을 제공합니다.

이 튜토리얼에서는 Rocky Linux 9 서버에서 Apache/httpd 리버스 프록시를 사용하여 Jenkins를 설치 및 설정합니다. SSL 및 방화벽으로 Jenkins를 보호할 수도 있습니다. 마지막으로 간단한 Jenkins 빌드를 생성합니다.

전제 조건

시작하려면 이 자습서를 완료하려면 다음 요구 사항이 필요합니다.

  • A Rocky Linux 서버 - 이 튜토리얼에서는 최신 Rocky Linux 9를 사용합니다.\n
  • sudo/root 관리자 권한이 있는 루트가 아닌 사용자.\n
  • 서버 IP 주소를 가리키는 도메인 이름 - 이 예에서는 도메인 jenkins.hwdomain.io를 사용합니다.\n
  • 허용 모드로 구성된 SELinux.\n

자바 OpenJDK 설치

Jenkins는 Java blah blah로 작성되었습니다. 이 단계에서는 Java OpenJDK 11을 설치합니다.

기본 Rocky Linux 리포지토리는 여러 버전의 Java OpenJDK를 제공합니다. Jenkins를 설치하려면 Java OpenJDK 11 또는 17을 사용할 수 있습니다. 이 예제에서는 Java OpenJDK 11을 사용하고 아래 dnf 명령을 실행하여 설치합니다.

sudo dnf install java-11-openjdk

메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

Java가 설치되면 아래 명령을 사용하여 Java 버전을 확인하십시오. Rocky Linux에 Java OpenJDK 11을 설치해야 합니다.

java -version

Jenkins 저장소 추가

Jenkins는 이러한 가상 머신의 독립 실행형 또는 Docker 및 Kubernetes와 같은 컨테이너 기술을 사용하는 것을 포함하여 여러 환경에 배포할 수 있습니다. Linux 배포의 경우 Jenkins 저장소에서 제공하는 바이너리 패키지를 통해 Jenkins를 설치할 수 있습니다.

Jenkins 리포지토리를 추가하기 전에 다음 dnf 명령을 실행하여 다음 패키지를 설치합니다.

sudo dnf install wget curl

그런 다음 아래의 wget 명령을 통해 RHEL 기반 운영 체제용 Jenkins 리포지토리를 다운로드합니다. 저장소는 /etc/yum.repos.d/jenkins.repo에 저장됩니다.

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo

다음으로 아래 rpm 명령을 사용하여 Jenkins 저장소의 GPG 키를 시스템으로 가져옵니다.

sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

마지막으로 아래의 dnf 명령을 통해 시스템에서 활성화된 리포지토리 목록을 확인합니다.

sudo dnf repolist

시스템에서 Jenkins 리포지토리를 사용할 수 있고 Jenkins를 설치할 준비가 되었다는 출력을 받게 됩니다.

젠킨스 설치

저장소가 추가되면 이제 Rocky Linux 서버에 Jenkins를 설치합니다.

다음 dnf 명령을 실행하여 Jenkins를 설치합니다.

sudo dnf install jenkins

메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 계속 진행합니다. 그러면 Jenkins 설치가 시작됩니다. 아래 출력에서 jenkins의 최신 안정 버전(이 글을 쓰는 시점)인 Jenkins v2.361을 설치합니다.

그런 다음 Jenkins 설치가 완료된 후 다음 systemctl 명령을 실행하여 systemd 관리자를 다시 로드합니다. 설치 시 jenkins 서비스가 생성되고 이 명령은 새 서비스를 시스템에 적용합니다.

sudo systemctl daemon-reload

그런 다음 systemctl 명령을 통해 jenkins 서비스를 시작하고 활성화합니다. 이제 Jenkins가 시스템에서 실행되고 있어야 하며 시작 또는 부팅 중에 자동으로 실행됩니다.

sudo systemctl start jenkins
sudo systemctl enable jenkins

마지막으로 다음 systemctl 명령을 통해 Jenkins를 확인합니다.

sudo systemctl status jenkins

다음 스크린샷과 유사한 출력이 표시됩니다. Jenkins 서비스가 실행 중입니다.

이제 Jenkins가 실행 중이므로 Jenkins의 초기 구성을 시작할 수 있습니다. 그러나 Apache/httpd를 리버스 프록시로 사용하여 Jenkins를 설정하고 실행합니다.

리버스 프록시로 httpd 설치 및 구성

이제 Jenkins는 TCP 포트 8080을 통해 액세스할 수 있습니다. Jenkins를 보다 사용자 친화적이고 안전하게 만들기 위해 Apache/httpd 웹 서버를 Jenkins의 역방향 프록시로 설치 및 구성합니다.

시작하기 전에 Rocky Linux IP 주소를 가리키는 도메인 이름이 있고 SSL 인증서도 생성했는지 확인하십시오. 자체 서명된 인증서를 사용하거나 Letsencrypt의 무료 SSL을 사용할 수 있습니다.

먼저 아래의 dnf 명령을 통해 httpd 웹 서버와 mod_ssl 패키지를 설치합니다. 메시지가 표시되면 y를 입력한 다음 Enter 키를 눌러 계속합니다.

sudo dnf install httpd mod_ssl

mod_ssl 패키지를 사용하려면 localhost에 대한 인증서를 설정해야 합니다. 따라서 다음 명령을 실행하여 localhost에 대해서만 자체 서명된 인증서를 생성하십시오.

이 과정에서 SSL 인증서에 대한 세부 정보를 입력하라는 메시지가 표시됩니다. 세부 정보를 입력하고 ENTER를 눌러 건너뛸 수 있습니다.

openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

httpd 웹 서버가 설치된 후 다음 nano 편집기 명령을 사용하여 새 가상 호스트 구성 /etc/httpd/conf.d/jenkins.conf을 만듭니다.

sudo nano /etc/httpd/conf.d/jenkins.conf

파일에 아래 구성을 추가합니다. 이 예에서는 Letsencrypt의 SSL 인증서와 함께 도메인 이름 jenkins.hwdomain.io를 사용합니다. 따라서 SSL 인증서의 도메인 이름과 경로를 반드시 변경해야 합니다.

<VirtualHost *:80>
    ServerAdmin 
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass         /  http://localhost:8080/ nocanon
    ProxyPassReverse  /  http://localhost:8080/
    ProxyPassReverse  /  http://jenkins.hwdomain.io/
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"
</VirtualHost>

파일을 저장하고 완료되면 편집기를 닫습니다.

다음으로 아래 명령을 실행하여 httpd 구성을 확인합니다. Syntax OK와 같은 출력을 얻는다면 적절한 httpd 구성이 있고 httpd 서비스를 시작할 준비가 되었음을 의미합니다.

sudo apachectl configtest

아래의 systemctl 명령을 통해 httpd 서비스를 시작하고 활성화합니다.

sudo systemctl start httpd
sudo systemctl enable httpd

아래 명령을 사용하여 httpd 서비스 상태를 확인합니다. httpd 서비스가 실행 중이고 활성화되어 있어야 합니다. 즉, 부팅 시 httpd가 자동으로 시작됩니다.

sudo systemctl status httpd

이 단계에서는 httpd 웹 서버를 설치하고 httpd를 리버스 프록시로 구성했으며 보안 HTTPS를 활성화했습니다. 그러나 Jenkins 설치에 액세스하려면 여전히 Rocky Linux 서버에 방화벽을 설정해야 합니다.

방화벽 구성

Firewalld는 Rocky Linux를 비롯한 RHEL 기반 운영 체제의 기본 방화벽 소프트웨어입니다. Rocky Linux에 기본적으로 설치되어 실행됩니다. 이제 방화벽을 설정하고 HTTP 및 HTTPS 서비스를 열어 Jenkins에 대한 액세스를 허용합니다.

다음 firewall-cmd 명령을 실행하여 HTTP 및 HTTPS 서비스를 firewalld에 추가합니다.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

그런 다음 firewalld를 다시 로드하여 새 변경 사항을 적용하고 firewalld에서 활성화된 서비스 목록을 확인합니다.

sudo firewall-cmd --reload
sudo firewall-cmd --list-services

이렇게 하면 다음과 같은 결과가 표시됩니다. HTTP 및 HTTPS 서비스가 모두 firewalld에 추가됩니다.

HTTP 및 HTTPS 포트가 열린 상태에서 웹 브라우저를 통해 Jenkins의 초기 설치 및 구성을 시작합니다.

Jenkins 초기 구성

Jenkins 초기 구성을 시작하기 전에 다음 명령을 실행하여 Jenkins의 초기 암호를 가져옵니다. Jenkins를 처음 구성할 때 초기 관리자 암호가 필요합니다.

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

이제 웹 브라우저를 열고 Jenkins 설치의 도메인 이름(예: https://jenkins.hwdomain.io/)을 방문합니다.

첫 번째 페이지에서 Jenkins 초기 관리자 비밀번호를 묻는 메시지가 표시됩니다. Jenkins 초기 암호를 붙여넣고 계속을 클릭합니다.

이제 일부 플러그인을 설치하여 Jenkins 설치를 사용자 정의하십시오. 플러그인을 수동으로 선택하거나(전문가의 경우) 제안된 플러그인 설치 옵션을 선택하여 Jenkins에서 권장하는 플러그인을 설치할 수 있습니다.

이제 Jenkins 플러그인 설치가 시작됩니다. 이제 모든 플러그인이 Jenkins에 설치됩니다.

플러그인 설치가 완료되면 Jenkins의 관리자 사용자를 설정합니다. Jenkins에 대한 세부 정보, 사용자, 이메일 및 암호를 입력하고 저장하고 계속을 클릭합니다.

다음으로 인스턴스 구성에 Jenkins URL을 입력합니다. 이 예에서 Jenkins는 https://jenkins.hwdomain.io/ 도메인에서 httpd 역방향 프록시로 실행됩니다.

저장 및 마침을 클릭하여 Jenkinss 초기 구성을 완료합니다.

Jenkinss 초기 구성이 완료되면 Jenkins 대시보드로 리디렉션됩니다.

이제 Jenkins 초기 구성을 완료했습니다. 이를 염두에 두고 새 Jenkins 빌드를 만들고 설정할 수 있습니다. Jenkins 빌드에 대해 알아보려면 계속 읽어보세요.

첫 번째 Jenkins 빌드 만들기

Jenkins 대시보드에서 새 항목 메뉴를 클릭하여 새 Jenkins 빌드를 만듭니다.

이 새 빌드의 프로젝트 이름을 입력하고 프로젝트 유형을 선택합니다. 이 예에서는 "Freestyle project 유형으로 새 Jenkins 빌드 "First Build"를 만듭니다.

계속하려면 확인을 클릭하십시오.

"일반" 섹션에서 프로젝트 설명을 입력합니다. 그런 다음 "빌드 단계" 섹션으로 이동합니다.

빌드 spets를 "Execute shell"로 선택하고 아래에 간단한 bash 명령을 입력합니다.

echo "This is First build on jenkins"

이제 저장을 클릭하여 Jenkins 빌드를 확인하고 생성합니다.

이제 "First Build" 프로젝트의 Jenkins 빌드 페이지로 리디렉션됩니다.

Jenkins 빌드를 시작하고 실행하려면 "지금 빌드"를 클릭하십시오. 프로젝트를 실행한 후 "빌드 기록" 섹션 아래에 빌드 기록이 표시되어야 합니다.

다음 스크린샷에는 Jenkins 빌드 기록이 하나만 있습니다.

Jenkins 빌드의 자세한 출력을 보려면 빌드 기록 번호 1을 클릭하십시오. 이제 Jenkins 빌드에서 생성된 자세한 출력을 보려면 "콘솔 출력"을 클릭하십시오.

이제 Jenkins 빌드를 만들고 실행하는 방법을 배웠습니다.

결론

이 기사에서는 Rocky Linux 9 서버에 Jenkins를 설치했습니다. 또한 Apache2/httpd 웹 서버를 Jenkins용 리버스 프록시로 설치 및 구성하고 SSL 인증서 및 방화벽을 통해 Jenkins 설치를 보호했습니다.

그 외에도 Jenkins의 기본 초기 구성 방법과 Jenkins 관리 웹 인터페이스를 통해 Jenkins 빌드를 만들고 실행하는 방법도 배웠습니다.

Jenkins 배포를 완전히 운영했으므로 이제 프로젝트를 추가하고 애플리케이션에 대한 Jenkins 빌드를 설정할 수 있습니다. 또한 사용자 환경에 적합한 플러그인을 추가하여 Jenkins 기능을 확장할 수 있습니다.