젠키스(Jenkins)에 노드(node) 추가하기

DevOps|2017. 5. 16. 19:00

젠키스(Jenkins)에 노드(node) 추가하기

CI 서버(Jenkins)는 EC2 등의 퍼블릭 IP로 접근 가능한 외부에 있고 특정 작업(job)을 사내에서 수행하는 경우 보안 문제 때문에 사내망을 CI에서 접근하도록 허용하는 건 어렵습니다. 이런 경우에 대한 해결책으로 자바 웹스타트를 통해 사내에 젠킨스 노드를 추가 할 수 있습니다. 제 경우는 사내의 Windows 랩탑에서 GUITAR 테스트를 수행하기 위해서 이 방법을 택했습니다.

Jenkins 관리 → 노드 관리 → 신규 노드 메뉴를 이용해서 노드를 추가합니다.

노드명을 입력하고 Permanent Agent를 선택한 후 OK 버튼을 클릭합니다.

이어지는 화면에서 Remote root directory에는 c:\jenkins를 입력하고 Launch method는 Launch agent via Java Web Start를 선택합니다. 나머지 설정은 기본 값을 유지하고 저장합니다.

아직 새 노드와 연결이 안됐기 때문에 노드 목록에는 오프라인으로 나옵니다. 이제 연결을 해야 합니다.

사내망 안의 Windows 랩탑에서 위에서 생성한 노드 화면에 접속합니다. Launch 버튼을 클릭하면 jnlp 파일(slave-agent.jnlp)을 다운로드 혹은 바로 실행할 수 있습니다. 혹 보안 경고가 뜨더라도 무시하고 jnlp 파일을 실행하세요. Jenkins slave agent가 실행되고 젠킨스 서버에 접속 중이라는 내용이 나오다가 곧 Connected로 내용이 변경됩니다. 만약 접속이 안되면 접속 중인 젠킨스 서버의 포트를 확인하세요. 접속 중 화면에 나온 포트(42031)가 접속 가능한지 확인하면 됩니다.

JNLP 에이전트의 포트는 무작위로 할당됩니다. 포트 고정이 필요하면 Jenkins 관리 → Configure Global Security 메뉴에서 TCP port for JNLP agents를 Fixed로 변경하고 원하는 포트 번호를 넣으면 됩니다.

이제 노드 화면을 새로고침하면 JNLP로 연결된 것으로 내용이 변경된 것을 확인할 수 있습니다.

노드 관리 화면의 목록에도 새 노드의 정보가 나옵니다.

랩탑을 재부팅 했을 때에도 연결을 유지하려면 Jenkins slave agent의 File → Install as a service 메뉴를 이용해서 윈도 서비스로 등록하면 됩니다.


EOF

댓글()