본문 바로가기

Study/IT 분야 연구

[Jenkins] node 추가시에 known host 추가하는 방법

반응형

최근에 젠킨스에서 노드를 추가하는 방법을 알게 되었고 신세계를 만났습니다. 하나의 서버에 부하가 쏠리는 현상을 확실하게 막아주는 것을 알게 되었습니다. 단순히 랜덤하게 노드간의 load balancing을 해주는게 아니라 처리하는데 걸리는 시간을 피드백 받아서 적절하게 분산 처리해주는 것으로 판단됩니다. 실제로 어떤 노드에서 수행되는지 확인해보면 성능이 좋은 서버에 우선적으로 job이 할당되는 것을 알 수 있습니다.

여러 서버들을 골고루(?) 잘 활용하기 위해서는 job을 잘게 쪼개는 작업이 필요합니다. 하나의 큰 job을 여러개의 작은 job으로 쪼개서 여러 노드에서 병렬로 빌드가 이뤄져야 더 빨리 수행할 수 있기 때문입니다.극단적인 예를 들자면, 노드는 100개인데 job이 2개 뿐이라면 나머지 98개의 노드들은 손가락을 빨고 있을 것이기 때문입니다. 그래서 큰 job을 작은 job으로 쪼개서 할당하는 스킬이 필요합니다.

그럼 jenkins에서 node를 추가하는 방법에 대해서 알아보겠습니다.

1. 신규 노드 추가 메뉴 접속
젠킨스 관리 -> 노드 관리 -> 신규 노드

2. 노드명을 입력하고 permanent agent를 선택합니다.

3. Launch method를 Launch agents via SSH로 선택

4. 추가할 노드의 IP와 credential을 입력합니다.

5. Save 버튼을 누릅니다.

jenkins가 알아서 신규 노드에 ssh로 접속하고 셋업을 자동으로 진행합니다.

만약, 로그에 아래와 같은 메세지가 나오면서 더 이상 진행이 되지 않는다면 known host를 추가해주면 됩니다.

$ ssh-keyscan -H (신규 노드 IP) >> /var/lib/jenkins/.ssh/known_hosts

깔끔하게 해결되네요.

반응형