Etc

[Jenkins] slave node 등록

우당탕탕인생기 2023. 10. 9. 00:40

이번에는 Jenkins 내에서 slave을 등록하여  master에서 각각의 slave로 배포 할 수 있도록 하는 작업을해보겠다.

 

 

 

Master slave 구성의 장점

 

이로 인해 각각의 ec2나 서버에 접속하여 젠킨스를 배포하지않고, slave로 등록해놓으면, master 서버에서 각각의 slave로 배포가 가능하다. 

 

또한 Jenkins에서 배포를 진행하다보면 인스턴스에 부하가 생길 수 있는데, master와 slave로 나누어 Jenkins Cluster을 구성하면 부하를 분산시킬 수 있다.

 

 

Jenkins 관리에서 노드 탭을 통해 진행할 수 있다.

 

 

 

SSH 통신 작업

Node를 등록하기전에 master - slave 간의 통신은 ssh로 진행할 것이기 때문에 키를 생성하고 slave ec2에 해당 pub 키를 넣어 줘야 한다.

 

ssh-keygen -t ed25519

 

키를 생성한 이후 해당 키의 pub 키를 slave의 authorized_keys에 넣어 줘야 한다.

 

 

이렇게 slave ec2에 넣어준다.

 

ssh uername@userip # 위 작업을 통해 한번 ssh을 통해 통신이 되는지 확인해본다.

 

 

 

 

노드 생성

새 노드명은 slave로 하겠다.

 

Lanuch method 는 ssh 통신으로 설정하고

Remote root directory 는 해당 slave 노드에 어떤 디렉토리에 배포 할 것인지 설정하는 것이다.

(이에 사전에 slave 노드에 해당 디렉토리를 만들어 줘야 한다.) - 나의경우 slave-node라고 하였다.

 

호스트에는 slave 노드의 ip를 입력해준다.

 

 

이 때 유저이름은 실제로 ec2 접속할때 사용했던 유저이름을 써야한다.

 

 

그리고 해당 공개키에 맞는 프라이빗키를 넣어준다.

 

 

그러면 이렇게 해당 노드가 잘 등록된걸 알 수 있다.

 

이후 slave 노드에 해당 디렉토리로 이동해보면

이런 파일들이 생긴걸 볼 수 있다.

 

참! 그리고 Jenkins은 java 기반이기때문에 slave ec2에도 java는 설치를 꼭 해야 한다.

 

 

 

'Etc' 카테고리의 다른 글

[Jenkins] 개념 및 우분투 설치  (1) 2023.10.05
GitOps repo 구성  (0) 2023.09.28
Git_add , commit , push , pull diff  (0) 2023.09.10
Storage 종류 , 파티션  (0) 2023.08.13