이번에는 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에 넣어 줘야 한다.
ssh uername@userip # 위 작업을 통해 한번 ssh을 통해 통신이 되는지 확인해본다.
노드 생성
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 |