도구 및 레이블이 지정된 에이전트 구성

Beginner

소개

Jenkins 는 서로 다른 노드에서 빌드를 실행할 수 있습니다. 레이블은 linux-build와 같이 노드가 수행할 수 있는 작업을 설명하며, Jenkins 는 작업을 예약하기 전에 일치하는 레이블을 요구할 수 있습니다. 또한 Jenkins 는 Git 과 같은 도구 설치 정보를 저장하므로, 작업 및 플러그인은 하드코딩된 경로에 의존하는 대신 명명된 도구를 참조할 수 있습니다.

이 실습에서는 Jenkins 대시보드를 사용하여 내장 노드를 검토하고, 노드 레이블을 추가하며, 로컬 Git 도구를 구성하고, 해당 레이블로 제한된 Freestyle 작업을 생성한 다음 빌드 출력을 확인합니다.

내장 노드 페이지 열기

이 단계에서는 대시보드에서 내장 Jenkins 노드를 찾습니다. 노드는 Jenkins 가 빌드를 실행할 수 있는 장소입니다. 이 실습에서는 LabEx Jenkins 컨트롤러에서 이미 온라인 상태인 내장 노드를 사용합니다.

데스크톱 인터페이스를 엽니다. Firefox 가 자동으로 Jenkins 를 엽니다. 그렇지 않은 경우 http://localhost:8080으로 접속하세요.

Jenkins 대시보드에서:

왼쪽 사이드바의 Manage Jenkins를 클릭한 다음 Nodes를 클릭합니다. Built-In Node라는 이름의 노드를 엽니다.

노드 페이지에는 내장 노드 상태와 Configure, Build History와 같은 탐색 옵션이 표시됩니다.

Jenkins built-in node page

터미널에서 다음 명령을 실행하여 내장 노드 페이지에 접근할 수 있는지 기록합니다:

curl -fsS http://localhost:8080/computer/%28built-in%29/ | grep -o 'Built-In Node' | head -1 | tee /home/labex/project/built-in-node-page.txt

다음과 같은 결과가 나타나야 합니다:

Built-In Node

내장 노드에 레이블 추가

이 단계에서는 내장 노드에 linux-build 레이블을 추가합니다. 레이블은 예약 태그입니다. linux-build를 요구하는 작업은 해당 레이블이 있는 노드에서만 실행될 수 있습니다.

Built-In Node 페이지에서 Configure를 클릭합니다.

Labels 필드를 찾아 다음을 입력합니다:

linux-build

Save를 클릭합니다.

저장 후 Jenkins 는 내장 노드 페이지로 돌아갑니다. 페이지에 linux-build 레이블이 표시되어야 합니다.

Jenkins built-in node label

로컬 Git 도구 구성

이 단계에서는 Local Git이라는 이름의 Jenkins Git 도구를 등록합니다. 도구 구성을 통해 Jenkins 는 사용할 실행 파일을 추측하는 대신 명명된 설치 경로를 참조할 수 있습니다.

Jenkins 대시보드에서:

Manage Jenkins를 클릭한 다음 Tools를 클릭합니다.

Git installations 섹션으로 스크롤합니다. Git 설치가 이미 존재하면 첫 번째 항목을 업데이트합니다. 섹션에 설치 항목이 없으면 Add Git을 클릭합니다.

Git 설치 정보를 다음 값으로 채웁니다:

  • Name: Local Git
  • Path to Git executable: git

Save를 클릭합니다.

Jenkins 는 이 도구 정의를 컨트롤러 구성에 저장합니다.

Jenkins local Git tool

다음 명령을 실행하여 저장된 Git 도구 구성을 확인합니다:

docker exec jenkins sh -lc "grep -n -E '<name>Local Git</name>|<home>git</home>' /var/jenkins_home/hudson.plugins.git.GitTool.xml" | tee /home/labex/project/git-tool-lines.txt

출력에는 도구 이름과 실행 파일 경로가 모두 포함되어야 합니다:

...<name>Local Git</name>
...<home>git</home>

레이블로 제한된 작업 생성

이 단계에서는 labeled-tool-demo라는 Freestyle 작업을 생성합니다. 이 작업은 linux-build 레이블이 있는 노드로 제한되므로, Jenkins 는 반드시 해당 레이블이 지정된 내장 노드에서 작업을 예약해야 합니다.

Jenkins 대시보드에서:

New Item을 클릭하고 labeled-tool-demo를 입력한 다음 Freestyle project를 선택하고 OK를 클릭합니다.

구성 페이지에서:

Restrict where this project can be run을 선택합니다. Label Expression에 다음을 입력합니다:

linux-build

Build Steps로 스크롤하여 Add build step을 클릭한 다음 Execute shell을 선택합니다.

다음 셸 스크립트를 입력합니다:

echo "Running on label: linux-build"
git --version
echo "Local Git is available to this build"

Save를 클릭합니다.

저장 후 작업 페이지가 열립니다.

Jenkins labeled Freestyle job

다음 명령을 실행하여 저장된 중요한 작업 설정을 기록합니다:

docker exec jenkins sh -lc "grep -n -E '<assignedNode>linux-build</assignedNode>|Running on label: linux-build|git --version' /var/jenkins_home/jobs/labeled-tool-demo/config.xml" | tee /home/labex/project/labeled-job-config.txt

레이블이 지정된 작업 실행

이 단계에서는 작업을 실행하고 콘솔 출력을 읽습니다. 이는 Jenkins 가 레이블 제한을 수락했으며 빌드가 구성된 환경에서 Git 을 실행할 수 있음을 증명합니다.

labeled-tool-demo 작업 페이지에서 Build Now를 클릭합니다.

빌드 기록에 #1이 나타나면 해당 빌드를 열고 Console Output을 클릭합니다. 콘솔에는 레이블 메시지, git version 라인, 그리고 Finished: SUCCESS가 표시되어야 합니다.

Jenkins labeled job console output

터미널에서 다음 명령을 실행하여 확인을 위해 동일한 콘솔 증거를 저장합니다:

curl -fsS http://localhost:8080/job/labeled-tool-demo/1/consoleText | grep -E 'Running on label|git version|Finished: SUCCESS' | tee /home/labex/project/labeled-job-console.txt

다음과 같은 출력이 표시되어야 합니다:

Running on label: linux-build
git version ...
Finished: SUCCESS

요약

내장 Jenkins 노드를 검토하고, 대시보드에서 linux-build 레이블을 추가하고, 명명된 로컬 Git 도구를 구성하고, 해당 레이블로 제한된 Freestyle 작업을 생성한 다음 성공적인 빌드 출력을 확인했습니다.