티스토리 뷰

Jenkins에서 master-slave node로 구성하는건 분산 빌드라던지 원격지에서 원격지로의 배포 등 여러가지 용도로 사용될 수 있다. Jenkins를 사용한다면 실제 빌드는 모두 Jenkins가 위치한 서버에서만 가능한데 이런 master-slave node로 구성을 한다면 이런 환경에 대해 조금 더 유연하게 대처할 수 있다. 즉 agent를 빌드나 배포를 할 서버에 심어놓으면 그 서버들은 각각 Jenkins가 설치된것 같은 효과를 누리게 되는 것이다. 이를 어떻게 구성하고 사용하는지 살펴보자.


 

가장 먼저 해야할일은 jenkins plugin 설치이다. plugin은 SSH Slaves plugin 을 설치하면 된다. 

 

 

설치를 하고 나면 Jenkins 관리 > 노드 관리 라는 메뉴가 활성화가 될것이고 이곳으로 진입한다. 여기에서 신규 노드 클릭한다. 적당한 노드 명을 입력하고 Permanent Agent 를 선택한다. 그리고 다음을 클릭하면 신규 노드에 대한 정보를 입력하는 화면이 나온다. 

 

 

위와 같이 작성을 한다. 각 항목에 대해 간략히 설명을 하면 

  • Name : slave로 사용할 node의 이름
  • # of executors : 현재 slave node의 동시 job 실행 개수
  • Remote root directory : slave.jar 파일이 위치해야 할 곳
  • Launch method : slave로 사용할 곳의 접속정보

설정항목들은 크게 어려운 곳이 없다. Remote root directory 와 접속정보 (고급을 꼭 눌러서 JavaPath와 Port 정보 설정) 만 잘 입력한다면 어려움 없이 slave를 설정할 수 있다. 나머지 설정들도 위와 같이 해주자. 설정을 다 했다면 Save!

 

 

그럼 그 다음 마주하게 되는 화면이다. 이미 위에서 지정한 Remote root directory에 slave.jar 파일을 넣어 놨으면 이것을 눌러서 최종 연결을 해주면 되지만 그렇지 않다면 해당 경로에 slave.jar 파일을 넣어주자. 파일이 정상적으로 들어 있고 모든 설정정보가 맞을때 Relaunch agent를 클릭하면 Agent successfully connected and online 라는 메세지가 나오며 성공적으로 연결이 되었다고 나온다. 

 

성공적으로 연결이 되면 slave에 넣었던 slave.jar가 있는 곳에는 위와 같은 것들이 추가적으로 설치가 된 것을 확인할 수 있다. 

 

 

Jenkins 상에서 연결된 정보를 확인하려면 Jenkins 관리 >노드 관리 로 들어가면 처음과는 다르게 노드의 목록들이 쭉 나온다. 내가 만들지 않았던 master 도 생성이 되어 있다. master는 Jenkins가 설치된 곳을 의미한다. 노드를 추가하기 이전에는 이 master 하나만 존재했기 때문에 굳이 나타낼 이유가 없었던 것이다. master는 물론 slave의 정보까지 모두 이곳에서 확인을 할 수 있다. 

 

 

위의 노드관리 뿐만 아니라 이제 Jenkins의 어느 화면에서도 이런 것들을 볼수가 있다. 이런 master-slave를 설정하기 전에는 master라는 것도 없었는데 이제 생기고 나머지 slave들도 어떤 상태인지 바로 확인할 수 있다. 

 

 

 

Jenkins Job을 만들면 위와 같이 Restrict where this project can be run 이라는것이 생겼고 이걸 체크하면 이 Job에 대한 실행 node를 지정을 할 수 있다. '이 Job의 실행 주체는 이놈이다!' 라고 지정해 주는거다. 앞글자만 맞게 입력을 해도 내가 만든 node들이 위처럼 나오므로 간단하게 정의할 수 있다. 여기서 조금 주의해야 할점은 slave에게 위임을 하지 않을 job들은 모두 master로 지정을 해놓는걸 권장한다. master로 지정을 해놓지 않았을때 버그인지 원하지 않는 액션을 수행됐던 경험이 있어서 확실히 하려면 slave 지정하지 않을 job들은 모두 master로 설정하기를 권장한다. 

 

리눅스 환경에서 설치를 하는건 위와 같이 간단하고 다음 시간에는 windows 환경에 jnlp설치를 하는 방법에 대해 알아보도록 하겠다. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31