중요합니다
많은 Azure 서비스에 Jenkins 플러그 인이 있지만 이러한 플러그 인의 대부분은 2024년 2월 29일부터 지원을 종료했습니다. Azure CLI는 현재 Jenkins를 Azure 서비스와 통합하는 데 권장되는 방법입니다. 자세한 내용은 Azure용 Jenkins 플러그 인 문서를 참조하세요.
이 자습서에서는 Azure에서 Linux 가상 머신을 만들고 VM을 Jenkins에 작업 노드로 추가하는 방법을 보여 줍니다.
이 자습서에서는 다음을 수행합니다.
- 에이전트 컴퓨터 만들기
- Jenkins에 에이전트 추가
- 새 Jenkins 자유형 작업 만들기
- Azure VM 에이전트에서 작업 실행
필수 조건
- Jenkins 설치: Jenkins 설치에 액세스할 수 없는 경우 Azure CLI를 사용하여 Jenkins를 구성합니다.
에이전트 가상 머신 구성
az group create를 사용하여 Azure 리소스 그룹을 만듭니다.
az group create --name <resource_group> --location <location>
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 키를 업로드할 수도 있습니다.
- 다음 명령을
JDK를 설치합니다.
Jenkins URL을 구성하기
JNLP를 사용하는 경우 Jenkins URL을 구성해야 합니다.
메뉴에서 Jenkins 관리를 선택합니다.
시스템 구성에서 시스템 구성을 선택합니다.
Jenkins URL이 Jenkins 설치
http://<your_host>.<your_domain>:8080/
의 HTTP 주소로 설정되어 있는지 확인합니다.저장을 선택합니다.
Jenkins에 에이전트 추가
메뉴에서 Jenkins 관리를 선택합니다.
시스템 구성에서 노드 및 클라우드 관리를 선택합니다.
메뉴에서 새 노드를 선택합니다.
노드 이름 값을 입력합니다.
영구 에이전트를 선택합니다.
확인을 선택합니다.
다음 필드에 값을 지정합니다.
이름: 새 Jenkins 설치 내에서 에이전트를 식별하는 고유한 이름을 지정합니다. 이 값은 에이전트 호스트 이름과 다를 수 있습니다. 그러나 두 값을 동일하게 만드는 것이 편리합니다. 이름 값은 다음 목록에서
?*/\%!@#$^&|<>[]:;
특수 문자를 사용할 수 있습니다.원격 루트 디렉터리: 에이전트에는 Jenkins 전용 디렉터리가 있어야 합니다. 에이전트에서 이 디렉터리의 경로를 지정합니다. 절대 경로(예:
/home/azureuser/work
또는c:\jenkins
.)를 사용하는 것이 가장 좋습니다. 에이전트 컴퓨터에 대한 로컬 경로여야 합니다. 마스터에서 이 경로를 표시할 필요가 없습니다. ./jenkins-agent와 같은 상대 경로를 사용하는 경우 경로는 Launch 메서드에서 제공하는 작업 디렉터리를 기준으로 합니다.레이블: 레이블은 의미 체계적으로 관련된 에이전트를 하나의 논리 그룹으로 그룹화하는 데 사용됩니다. 예를 들어, Ubuntu 배포판을 실행 중인 모든 Linux 에이전트에 대해
UBUNTU
레이블을 정의할 수 있습니다.시작 방법: 원격 Jenkins 노드를 시작하는 두 가지 옵션이 있습니다. SSH를 통해 에이전트 를 시작하고 마스터에서 명령을 실행하여 에이전트를 시작합니다.
SSH를 통해 에이전트 시작: 다음 필드에 대한 값을 지정합니다.
호스트: VM 공용 IP 주소 또는 도메인 이름입니다. 예를 들어
123.123.123.123
또는example.com
자격 증명: 원격 호스트에 로그인하는 데 사용할 자격 증명을 선택합니다. 추가 단추를 선택하여 새 자격 증명을 정의한 다음, 새 자격 증명이 만들어지면 해당 자격 증명을 선택할 수도 있습니다.
호스트 키 확인 전략: Jenkins가 연결하는 동안 원격 호스트에서 제공하는 SSH 키를 확인하는 방법을 제어합니다.
마스터에서 명령 실행을 통해 에이전트를 시작합니다.
agent.jar
에서https://<your_jenkins_host_name>/jnlpJars/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
.
저장을 선택합니다.
구성을 정의한 후 Jenkins는 가상 머신을 새 작업 노드로 추가합니다.
Jenkins에서 작업 만들기
메뉴에서 새 항목을 선택합니다.
이름에 를 입력
demoproject1
합니다.프리스타일 프로젝트를 선택합니다.
확인을 선택합니다.
일반 탭에서 프로젝트를 실행할 수 있는 위치 제한 및
ubuntu
에 입력 을 선택합니다. 이전 단계에서 만든 클라우드 구성에서 레이블이 제공됨을 확인하는 메시지가 표시됩니다.소스 코드 관리 탭에서 Git을 선택하고 리포지토리 URL 필드에 다음 URL을 추가합니다.
https://github.com/spring-projects/spring-petclinic.git
빌드 탭에서 빌드 단계 추가를 선택한 다음 최상위 Maven 대상을 호출합니다.
package
필드에 를 입력합니다.저장을 선택합니다.
Azure VM 에이전트에서 새 작업 빌드
이전 단계에서 만든 작업을 선택합니다.
지금 빌드를 선택합니다. 새 빌드는 대기 중이지만 Azure 구독에서 에이전트 VM을 만들 때까지 시작되지 않습니다.
빌드가 완료되면 콘솔 출력으로 이동합니다. 빌드가 Azure 에이전트에서 원격으로 수행된 것을 볼 수 있습니다.