Jenkins 실행자가 부족하거나 Jenkins Windows 작업을 대기 중인 경우 대기 중인 작업이 있는지 확인하십시오. 그렇다면 더 많은 Jenkins 에이전트를 설정해야 합니다.
이 튜토리얼에서는 소프트웨어 빌드 환경에서 지속적으로 증가하는 자원 요구를 지원하기 위해 Jenkins 에이전트 Windows 노드를 추가하는 방법을 배우게 됩니다!
필수 조건
이 기사를 따라하기 위해 다음이 필요합니다.
- 2.176.1 이상인 Jenkins 컨트롤러 설치가 작동 중이어야 하며, 이 기사에서 컨트롤러는 마스터 노드로 지칭됩니다.
- 이 기사에서 Jenkins 에이전트 노드로 지칭되는 지원되는 Windows OS 설치.
Jenkins 에이전트 및 Jenkins 에이전트 컨트롤러란?
A core component of Jenkins is the job. Jobs are instances of build automation that run a defined set of tasks. Supporting different job configurations requires an automation system to distribute build jobs among different nodes, which is simply an environment containing a Jenkins agent or controller.
Jenkins 에이전트는 물리적 머신, 가상 머신, Kubernetes 클러스터, 및 Docker 이미지와 같은 다양한 환경에서 실행됩니다. Jenkins 에이전트는 노드에 상주하는 실행 가능한 파일로, 컨트롤러에 의해 작업을 실행하도록 지시됩니다.
Jenkins 에이전트를 관리하는 것은 에이전트 컨트롤러, 즉 마스터 노드의 역할입니다. 단일 Jenkins 노드 구성에서 컨트롤러는 Jenkins 에이전트로도 작동하고 빌드 작업을 실행할 수도 있습니다. 환경이 더 복잡해지면 이 구성이 제한적이 되는데요.
컨트롤러 마스터 노드가 작업을 실행하지 못하도록 방지하기
추가적인 Jenkins 에이전트를 추가하기 전에 먼저 마스터 노드를 빌드 에이전트 풀에서 제거해야 합니다. 이렇게 하면 컨트롤러가 빌드 작업을 조정하는 데 충분한 리소스를 확보할 수 있습니다. 마스터 노드가 작업을 실행하지 못하도록 하는 필요한 설정을 따라가 보겠습니다.
- 브라우저를 통해 Jenkins 사용자 인터페이스로 이동합니다. 이 튜토리얼에서는 Jenkins 컨트롤러가
192.168.x.x:8080
주소를 사용합니다.

2. Jenkins 대시보드가 나타나면 Manage Jenkins 링크를 클릭합니다.

3. 그다음, 시스템 구성 섹션에서 Configure System 링크를 클릭합니다.

4. 페이지를 아래로 스크롤하여 # of executors 설정을 찾고 값을 0
으로 설정합니다. 이 설정은 마스터 노드 또는 컨트롤러가 어떤 빌드 작업도 실행하지 않도록 강제합니다.

0
.5. 동일한 페이지에서 Jenkins URL 을 찾습니다. URL을 localhost:8080
대신 브라우저에서 사용하는 IP 주소와 포트로 변경합니다.
에이전트 노드가 올바르게 설정되지 않으면 컨트롤러에 통신할 때
localhost
를 사용하려고 시도할 수 있습니다. 올바른 IP 주소가 구성되면 향후 에이전트 통신 문제를 피할 수 있습니다!

6. 업데이트된 설정을 확인하고 적용하려면 저장을 클릭하십시오.
수신 대기 중인 에이전트용 TCP 포트 설정
Windows Jenkins 에이전트 노드에 작업 서비스를 어떻게 가장 잘 시작하고 컨트롤러로 통신하는지 알리려면 TCP 수신 대기 포트 설정을 구성해야 합니다. TCP 수신 대기 포트 설정을 정의하면 Jenkins 에이전트가 네트워크를 통해 Jenkins 컨트롤러에 연결하는 방법을 알 수 있습니다.
- 다시 한번, Jenkins 대시보드에서 Manage Jenkins 구성 페이지로 이동하십시오.
2. 아래 그림과 같이 전역 보안 구성 섹션을 클릭하여 TCP 포트 옵션을 찾으십시오.

3. 에이전트 섹션과 수신 대기 중인 에이전트용 TCP 포트를 찾아서 선택합니다. 옵션을 비활성화에서 랜덤으로 변경하십시오. 랜덤 설정으로 Jenkins는 초기 연결시 에이전트에게 무작위 사용 가능한 포트 번호를 선택하고 해당 포트 번호를 Jenkins HTTP 포트에 연결합니다.

4. 마지막으로, 업데이트된 설정을 적용하려면 저장 버튼을 클릭하십시오.
Jenkins 컨트롤러에 새로운 Jenkins 에이전트 노드 생성
모든 적절한 설정이 구성되었으므로 새로운 Jenkins 에이전트 노드를 생성할 시간입니다. 이전에 Windows 노드에서 작업 디렉토리를 생성하세요. Windows 노드에서 C:\Jenkins 디렉토리를 생성하세요.
작업 디렉토리가 생성되면 아래 단계를 따라 새로운 노드를 구성하세요!
- Jenkins 대시보드에서 노드 및 클라우드 관리 링크를 클릭하세요.

2. 왼쪽 메뉴에서 새 노드 링크를 클릭하세요. 컨트롤러만이 에이전트로 있는 경우, 노드 목록에는 처음에는 마스터 노드만 표시됩니다.

3. 노드 이름을 입력하세요. 이 튜토리얼에서는 MyWindowsAgent1
이지만 환경에 더 적합한 식별자를 사용할 수 있습니다. 그리고 영구적인 에이전트 옵션을 선택하세요. 추가적인 에이전트가 있는 경우 기존 노드 복사 옵션도 볼 수 있습니다. 마지막으로 확인 버튼을 클릭하세요.

4. 아래 설정으로 새로운 에이전트를 구성하세요. 초록색으로 강조된 옵션들은 기본값입니다.
- 실행자 수: 일반적으로 에이전트 코어 수에 해당합니다. 해당하는 PowerShell 스니펫은 아래에 제공되었습니다.
- 원격 작업 디렉토리: C:\Jenkins
- 실행 방법: 에이전트를 마스터에 연결하여 실행합니다.

최근 Cloudbees.com의 솔루션 기사에서, 2.176.1 이후의 버전에서 에이전트 런치 옵션이 변경되었습니다. “웹 스타트로 에이전트 실행”은 이제 “마스터에 연결하여 에이전트 실행”입니다.
5. “저장” 버튼을 클릭하고 새로운 Windows Jenkins Agent 노드가 표시되는 노드 목록 화면으로 이동합니다.
6. 새로운 노드인 MyWindowsAgent1
의 이름을 클릭하여 에이전트 설치 링크를 가져옵니다.

7. Jenkins 에이전트가 호스팅될 Windows 노드에 원격 데스크톱(RDP) 연결을 엽니다.
8. 곧 Windows 에이전트에서 브라우저로 http://controllerip:port/computer/nodename
을(를) 탐색합니다.
9. 에이전트 설치 프로그램을 다운로드하고 Jenkins 에이전트 설치를 시작하기 위해 실행 버튼을 클릭합니다.

다음 단계
새로운 에이전트를 활용하는 다양한 방법이 있습니다. Jenkins에서 PowerShell 스크립트를 실행하거나 Docker에서 Jenkins를 실행하는 등 빌드 환경을 자동화하는 다양한 방법을 찾을 수 있을 것입니다!