허드슨 마스터 서버외에 다른 서버에서 허드슨 마스터의 서버를 통제받고 싶다면 허드슨 슬레이브를 추가하면 된다.
1.슬레이브 서버에 허드슨 슬레이브 jar 다운로드
우선, 슬레이브가 추가될 서버에서 마스터에 접속해 라이브러리를 받아야한다.
다음과 같이 허드슨 마스터 URL 하위에 붙여서 라이브러리를 다운 받는다.
shell> mkdir hudson shell> cd hudson shell> wget http: //yourserver :port /jnlpJars/slave .jar |
2. 관리콘솔에서 허드스 슬레이브 서버 등록
hudson 관리콘솔에서 Manage/Manage Nodes 페이지로 접속한다.
2.1 '신규노드'를 클릭한다.
2.2 노드명 입력
노드명을 입력한다. 슬레이브가 설치되는 서버명을 입력하고 'OK' 를 클릭한다.
2.3 기본 정보 입력
노드의 기본 정보를 입력하는데, 주요 필수 속성은 다음과 같다. 잘 입력해주자.
Property | Description | Example |
---|---|---|
Name | 관리콘솔에서 식별하는 슬레이브 서버(노드)명 | demo-app
|
#of executors | 작업이 한번에 돌아가는 수. 일반적으로 cpu 코어의 수 만큼 맞춘다. | 1 |
Remote FS root | 슬레이브 서버의 hudson slave 가 설최드는 물리적인 경로 slave.jar 파일이 받아진 위치를 지정한다. | /home/slothink/hudson |
Launch Method | 마스터와 슬레이브 연결 지정방식이다.
여기에서는 JNLP 프로토콜을 사용하도록 한다. |
2.4 Tool Location 입력
그리고 엄청 중요한 노드 속성들을 입력한다.
Node Properties 의 Tool Locations 를 설정하지 않으면, 해당 툴을 이용한 작업들이 원격(슬레이브)에서 실행되지 않는다.
슬레이브 서버에 존재하는 툴에 대한 물리적인 경로를 입력해준다.
'save' 를 클릭한다. 그러면 다음과 같이 추가된 노드를 볼 수 있다.
아직 슬레이브 연결을 하지 않았으므로 공포의 X가 보인다.
3. Hudson Slave 연결
이제 노드 관리 화면에서 방금 추가한 노드를 선택하면 다음과 같은 화면이 나온다.
여기서 나온 실행명령어를 슬레이브 서버의 허드슨 디렉토리(slave.jar 있는 곳)에서 실행한다.
java -jar slave.jar -jnlpUrl http: //source .comas.co.kr:12080 /hudson/computer/demo-app/slave-agent .jnlp |
콘솔에 Connected 라는 메시지가 나오고 관리 콘솔에 다음과 같이 나오면 정상 연결된것이다.
4.작업 생성
이제 작업을 원격에서 실행할 수 있도록 하면 된다.
4.1 새 작업 생성
'새 작업' 을 클릭한다.
기본 작업명 하고, 이건 알아서 스스로 어린이.
4.2 실행할 노드 선택
그리고 'Restrict where this job can be run' 을 체크한다.
작업을 실행할 슬레이브 노드 선택방법에 따라 다음과 같이 선택한다.
Value | Description |
---|---|
Node and label menu | 특정한 노드를 선택한다. |
Advanced Node and Label expressions | 표현식으로써 여러개의 노드를 선택할 수 있다. 예로 들어 aix1 -> aix2 -> demo-app 라고 지정하면, aix1 번에서 작업 후, aix2 에서 작업 후, 마지막으로 demo-app 에서 작업하게 된다. 자세한 것은 오른쪽의 도움말 참조. |
그리고 저장하고 실행해본다.
Building remotely on ... 가 나오면 이제 울면 된다. TT-TT
이제 진정한 노가다 배포에서 해결할 준비가 되었다.