[Jenkins] 젠킨스 Agent 노드 추가 및 설정 방법

728x90
반응형

 

 

 

 

 

 

 

 

 


 

 

 

들어가며

젠킨스의 경우, 젠킨스를 이용해서 지속적으로 프로젝트를 빌드하고, 배포를 하고, 그 이외에도 다양한 업무를 수행하는 목적으로 사용을 합니다. 이런 젠킨스를 각 머신마다 설치를 하고 설정을 하기는 번거로운데요. 

메인으로 사용할 젠킨스에서 각각의 빌드머신, 혹은 개발환경을 컨트롤 할 수 있게끔 Agent 노드를 제공하는데요.

그 방법에 대해서 정리했습니다. 

저도 개발, QA, 핫픽스 등등 각각의 개발머신에 배포하는 환경을 하나의 젠킨스 장비에서 관리를 하고 있습니다. 

 

 

 

 

 

## 신규 노드 (Agent) 추가

 

 

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

 

 

 

 

 

 

신규 노드를 추가 하는 버튼을 선택합니다. 

 

 

 

 

 

 


노드명을 입력해주고, Type은 Permanent Agent 를 선택해 줍니다. 

Permanent Agent
Jenkins에 일반 영구 에이전트를 추가합니다. Jenkins는 동적 프로비저닝과 같은 이러한 에이전트와의 높은 수준의 통합을 제공하지 않기 때문에 이를 "영구적"이라고 합니다. 다른 에이전트 유형이 적용되지 않는 경우(예: 실제 컴퓨터를 추가하는 경우, Jenkins 외부에서 관리되는 가상 머신 등) 이 유형을 선택하십시오.

 

 

 

 

 

 

 

기본적으로 노드 (Agent)의 이름 및 설명, 라벨을 입력해야 하는데요.

중점적으로 체크해야 할 부분은 Remote root directory 입니다. 

노드로 사용할 원격 서버의 디렉토리를 설정해주면 됩니다.

저의 경우는 C:\Jenkins 폴더를 이용해서 디렉토리를 설정하였습니다. 

Jenkins 가 설치된 장소의 디렉토리가 아닌,  Agent 노드가 실행될 서버의 디렉토리를 기입해줘야 합니다. 

 

 

 

 

 

 


Launch method는 Launch agent by connection it to the controller 로 설정 합니다. 

에이전트가 준비될때마다, Jenkins 컨트롤러에 연결 할 수 있는 기능입니다. 에이전트 머신이 TCP 연결을 설정하게 되는데요. WebSocket 모드

로 사용을 하면, TCP 수신포트를 설정하지 않아도 가능합니다. 

 

 

 

 

 

 

모든 과정을 설정하게 되면, 추가한 노드가 화면에 보여지게 됩니다. 

맨 위에 있는 Built-In Node는 젠킨스가 설치된 서버의 노드이기 때문에 무시하셔도 됩니다. 

 

 

 

 

 

 

 

 

## Agent 관련 port 설정

 

추가한 Agent 노드를 선택했을때, 위와 같은 메시지를 보게될 경우, port 관련해서 설정을 확인하셔야 합니다.

위에서 WebSocket을 사용하기로 하였지만, 글로벌 보안설정을 수정해줘야 설정할 수 있는 command line 메시지를 확인 할 수 있습니다. 

 

 

젠킨스 관리에 있는 Security 메뉴 중 Configure Global Security  메뉴를 선택하시면,

 

 

 

 

Agent 에 관련된 TCP port 관련한 설정을 확인 할 수 있습니다. 

 

 

 

 

저의 경우는 Random으로 설정을 하였습니다. 

 

인바운드 에이전트를 사용하지 않는 경우 기본 설치 동작인 이 기능을 완전히 비활성화하는 것이 좋습니다. Jenkins는 TCP 포트를 사용하여 인바운드에 연결된 에이전트와 통신합니다. 인바운드 에이전트를 사용하려는 경우 시작 시 시스템이 임의로 포트를 선택하도록 허용할 수 있습니다(이렇게 하면 다른 Jenkins 인스턴스를 비롯한 다른 프로그램을 방해하지 않습니다). 방화벽은 임의의 포트를 보호하기 어렵기 때문에 대신 고정 포트 번호를 지정하고 그에 따라 방화벽을 구성할 수 있습니다.

 

 

 

 

 

## Agent 연결

 

port를 설정한 뒤 다시 Agent 노드를 선택할 경우, 위처럼 해당 Agent 장비에서 실행해줄 command line 명령어가 노출이 됩니다. 해당 명령줄을 가지고 신규 Agent 장비로 가서 실행해주면 됩니다. 

 

 

 

 

 

이처럼 관리자 모드로 cmd를 실행 후, 해당 명령어를 입력하게 되면, jar 파일을 다운로드 받고 해당 파일을 이용해서 WebSoket을 이용해서 연결 한 것을 확인 할 수 있습니다. 

 

 

 

 

 

이후 dev-qa-155 이름의 sample Agent 노드에 정상적으로 연결이 된 것을 확인 할 수 있었습니다. 

 

 

 

 

 

 

 

참조

 

 

 

 

 

 

 

 

 

END


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90