자습서: Azure에서 실행되는 VM을 사용하여 Jenkins 배포 크기 조정

Important

많은 Azure 서비스에 Jenkins 플러그 인이 있습니다. 이러한 플러그 인 중 일부는 2024년 2월 29일부터 지원되지 않습니다. Azure CLI는 현재 Jenkins를 Azure 서비스와 통합하는 데 권장되는 방법입니다. 자세한 내용은 Azure용 Jenkins 플러그 인 문서를 참조하세요.

이 자습서에서는 Azure에서 Linux 가상 머신을 만들고 해당 VM을 Jenkins에 작업 노드로 추가하는 방법을 보여 줍니다.

이 자습서에서는 다음을 수행합니다.

  • 에이전트 머신 만들기
  • Jenkins에 에이전트 추가
  • 새 Jenkins 프리스타일 작업 만들기
  • Azure VM 에이전트에서 작업 실행

필수 조건

에이전트 가상 머신 구성

  1. az group create를 사용하여 Azure 리소스 그룹을 만듭니다.

    az group create --name <resource_group> --location <location>
    
  2. az vm create를 사용하여 가상 머신을 만듭니다.

    az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
    

    주요 정보:

    • 또한 --ssh-key-value <ssh_path> 명령을 사용하여 SSH 키를 업로드할 수도 있습니다.
  3. JDK를 설치합니다.

    1. SSH 도구를 사용하여 가상 머신에 로그인합니다.

      ssh username@123.123.123.123
      
    2. apt를 사용하여 JDK를 설치합니다. yum 또는 pacman과 같은 다른 패키지 관리자 도구와 함께 설치할 수도 있습니다.

      sudo apt-get install -y default-jdk
      
    3. 설치가 완료되면 실행 java -version 하여 Java 환경을 확인합니다. 출력에는 JDK의 다양한 부분과 관련된 버전 번호가 포함됩니다.

Jenkins URL 구성

JNLP를 사용하는 경우 Jenkins URL을 구성해야 합니다.

  1. 메뉴에서 Jenkins 관리를 선택합니다.

  2. 시스템 구성에서 시스템 구성을 선택합니다.

  3. Jenkins URL이 Jenkins 설치의 HTTP 주소(http://<your_host>.<your_domain>:8080/)로 설정되었는지 확인합니다.

  4. 저장을 선택합니다.

Jenkins에 에이전트 추가

  1. 메뉴에서 Jenkins 관리를 선택합니다.

  2. 시스템 구성에서 노드 및 클라우드 관리를 선택합니다.

  3. 메뉴에서 새 노드를 선택합니다.

  4. 노드 이름에 값을 입력합니다.

  5. 영구 에이전트를 선택합니다.

  6. 확인을 선택합니다.

  7. 다음 필드에 대한 값을 지정합니다.

    • 이름: 새 Jenkins 설치 내에서 에이전트를 식별하는 고유한 이름을 지정합니다. 이 값은 에이전트 호스트 이름과 다를 수 있습니다. 그러나 두 값을 동일하게 만드는 것이 편리합니다. 이름 값은 다음 목록에서 ?*/\%!@#$^&|<>[]:;특수 문자를 사용할 수 있습니다.

    • 원격 루트 디렉터리: 에이전트에는 Jenkins 전용 디렉터리가 있어야 합니다. 에이전트에서 이 디렉터리의 경로를 지정합니다. 절대 경로(예: /home/azureuser/work 또는 c:\jenkins.)를 사용하는 것이 가장 좋습니다. 에이전트 컴퓨터에 대한 로컬 경로여야 합니다. 마스터에 이 경로를 표시할 필요는 없습니다. ./jenkins-agent와 같은 상대 경로를 사용하는 경우 경로는 Launch 메서드에서 제공하는 작업 디렉터리를 기준으로 합니다.

    • 레이블: 레이블은 의미 체계적으로 관련된 에이전트를 하나의 논리 그룹으로 그룹화하는 데 사용됩니다. 예를 들어 Linux의 Ubuntu 배포판을 실행하는 모든 에이전트에는 UBUNTU 레이블을 정의할 수 있습니다.

    • 시작 방법: 원격 Jenkins 노드를 시작하는 두 가지 옵션이 있습니다. SSH를 통해 에이전트를 시작하고 마스터에서 명령을 실행하여 에이전트를 시작합니다.

      • SSH를 통해 에이전트 시작: 다음 필드에 대한 값을 지정합니다.

        • 호스트: VM 공용 IP 주소 또는 할기본 이름입니다. 예를 들어 123.123.123.123 또는 example.com와 같습니다.

        • 자격 증명: 원격 호스트에 로그인하는 데 사용할 자격 증명을 선택합니다. 추가 단추를 선택하여 새 자격 증명을 정의한 다음, 새 자격 증명이 만들어지면 해당 자격 증명을 선택할 수도 있습니다.

        • 호스트 키 확인 전략: Jenkins가 연결하는 동안 원격 호스트에서 제공하는 SSH 키를 확인하는 방법을 제어합니다.

        Node configuration example specifying a launch method of Launch agents via SSH.

      • 마스터에서 명령 실행을 통해 에이전트를 시작합니다.

        • 에서 https://<your_jenkins_host_name>/jnlpJars/agent.jar다운로드합니다agent.jar. 예: https://localhost:8443/jnlpJars/agent.jar.

        • agent.jar를 가상 머신에 업로드합니다.

        • 명령을 사용하여 Jenkins를 시작합니다 ssh <node_host> java -jar <remote_agentjar_path>. 예: ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar.

        Node configuration example specifying a launch method of Launch agent via execution of command on the master.

  8. 저장을 선택합니다.

구성을 정의한 후 Jenkins는 가상 머신을 새 작업 노드로 추가합니다.

Example of virtual machine as new work node

Jenkins에서 작업 만들기

  1. 메뉴에서 새 항목을 선택합니다.

  2. 이름을 입력 demoproject1 합니다.

  3. 프리스타일 프로젝트를 선택합니다.

  4. 확인을 선택합니다.

  5. 일반 탭에서 프로젝트를 실행할 수 있는 위치 제한 및 레이블 식입력 ubuntu 을 선택합니다. 이전 단계에서 만든 클라우드 구성에서 레이블이 제공됨을 확인하는 메시지가 표시됩니다.

    Setting up a new Jenkins job

  6. 소스 코드 관리 탭에서 Git을 선택하고 리포지토리 URL 필드에 다음 URL추가합니다.https://github.com/spring-projects/spring-petclinic.git

  7. 빌드 탭에서 빌드 단계 추가를 선택한 다음 최상위 Maven 대상을 호출합니다. 목표 필드에 입력 package 합니다.

  8. 저장을 선택합니다.

Azure VM 에이전트에서 새 작업 빌드

  1. 이전 단계에서 만든 작업을 선택합니다.

  2. 지금 빌드를 선택합니다. 새 빌드는 대기 중이지만 Azure 구독에서 에이전트 VM을 만들 때까지 시작되지 않습니다.

  3. 빌드가 완료되면 콘솔 출력으로 이동합니다. 해당 빌드가 Azure 에이전트에서 원격으로 수행되었음이 표시됩니다.

    Console output

다음 단계