ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Jenkins: 젠킨스 분산 빌드 환경 구성
    공부합시다!/Jenkins 2022. 2. 23. 17:04
    728x90

    간만에 다시 Jinkins로 돌아오네요!

    이전 시간에 Jenkins를 설치해 보았습니다.

    이번 시간에는 Master 1대와 Slave2대(Node1, Node2)로 구성된 분산 빌드 환경을 구성하겠습니다.

     

    하나의 Jenkins에 너무 많은 부하가 걸리는 것을 방지하고 장애에 대비할 수 있으니

    CI/CD의 Load Balancer 구성이라 생각해도 큰 무리가 없습니다.

     

    1. Master 작업

     1.1. Jenkins 접속

      1.1.1. 웹브라우저를 이용해 초기 설치 후 /etc/sysconfig/jenkins 파일에서 지정한 포트 접속

      1.1.2. Jenkins 관리 -> 노드 관리 클릭

    Node 관리

     1.2. 신규 노드 생성

      1.2.1. 신규 노드 클릭

       1.2.1.1. 노드명 : Node1 (사용자가 식별하기 쉽게)

       1.2.1.2. Permanent Agent 체크 -> OK 클릭

    Node Name

     1.3. 신규 노드 정보 입력

      1.3.1. Name : Node1

      1.3.2. Description : 설명은 항상 옵션입니다. 10.0.0.32로 IP 입력

      1.3.3. Number Of executors : 빌드 실행 수 2개로 지정

      1.3.4. Remote root directory : 추가할 노드에 생성할 Directory 입니다. /dep/jenkins로 입력

      1.3.5. Labels : jenkins Code에서 사용할 식별자 입니다. Node1으로 입력

      1.3.6. Use Websocket 체크 -> Save

    추가 Node 세부 사항 입력

     1.4. 신규 노드 확인

      1.4.1. 추가된 신규 노드 Node1을 확인합니다. 아직 연결은 되지 않았습니다.

    신규 노드 확인

     1.5. 신규 노드 Agent 확인

      1.5.1. 추가된 신규 노드 Node1 아이콘 클릭

      1.5.2. 추가할 Node에서 수행할 Agent Code 확인 후 복사해 둡니다. 추가할 Node에서 작업할 Code입니다.

    신규 노드 Agent 확인

     

    2. Node1 설정

     2.1. 추가할 신규 노드 Node1에서 작업을 진행합니다.

      2.1.1. Master에서 지정한 Remote root directory 생성

       2.1.1.1. # mkdir -p /dep/jenkins

      2.1.2. 디렉토리 이동, Agent Download를 위해서

       2.1.2.1. # cd /dep/jenkins

      2.1.3. master 서버에서 Agent파일을 다운로드 하기 위해 wget 설치

       2.1.3.1. # yum install -y wget

    Node 설정 작업

     

     

    728x90

     

     2.2. Agent 설치

      2.2.1. Master에서 Agent Download

       2.2.1.1. # wget http://마스터서버IP:jenkins포트/jnlpJars/agent.jar

      2.2.2. 다운로드 한 Agent 설치. 단 이때 코드는 Master에서 Node추가 후 생성한 Code 사용

       2.2.2.1. # Master에서 생성한 code &   반드시 끝에 & 기호를 붙여서 Background 실행.

    그래야 다른 작업을 CLI에서 할 수 있다. 아니면 별도의 tty를 또 Open해야함으로 손이 많이 감. 

    Agent 설치

     

    3. Master 확인

     3.1. master 서버에서 추가 노드 확인

      3.1.1. Master Node에서 '신규노드'를 클릭하면 추가된 Node 확인 가능

      3.1.2. 시간 동기화 문제는 별거 아니나 다음을 보고 수정

     3.2. 시간 동기화

      3.2.1. rdate 설치 후 

       3.2.1.1. # yum install -y rdate

      3.2.2. bora.net NTP 동기화

       3.2.2.1. # rdate -s time.bora.net && hwclock -w

      3.2.3. 시간 확인

       3.2.3.1. # date

    NTP 시간 동기화

     3.3. 시간 동기화 완료

      3.3.1. 시간 동기화 작업이 완료되면 빨간색 시간 불일치 문제는 사라짐

    시간 불일치 오류 해결

     

    4. Node2 설정

     4.2. Master Node에서 추가 작업

      4.2.1. Master Node에서 또 다른 Node2 추가 작업 진행

    Node 추가

     

    동일한 작업을 Node2에서도 실행하시면 모든 작업 완료

     

    5. Master 확인

     5.1. 챕처4의 작업이 완료되면 Node2 추가 완료

      5.1.1. Node 2와 함께 각 Node별로 executors 각 2개 확인

    Node 및 executors 확인

    이렇게 분산환경을 위한 Node1, Node2 추가 작업을 완료했습니다.

    Jenkinsfile 작성 시 Labels 지시자로 적절히 활용하시면 되세요!

     

    Have a nice day!

    728x90

    '공부합시다! > Jenkins' 카테고리의 다른 글

    Jenkins: Jenkins Publish Over SSH  (0) 2023.01.18
    Jenkins: Jenkins Permission  (0) 2023.01.13
    Jenkins: Jenkins Project 생성 및 Build Test  (0) 2023.01.11
    Jenkins: 젠킨스 Docker 설치  (0) 2023.01.09
    Jenkins : Jenkins 설치  (3) 2022.01.04
Designed by Tistory.