티스토리 뷰
Jenkins(Mac m1) 25 Jenkins multi nodes 구성 (Master + Slaves)
svdjcuwg4638 2023. 7. 3. 10:58Master Jenkins에서 일을 받아 밑의 Slaves로 넘겨 일을 처리하고 Slaves지정이가능하며 Slaves는 각각에 다른 OS를 부여가능
새로운 서버 추가
slave설정 내용
Number of executors = 마스터 한태서 받는 일의 최대 개수
Remote root directory = slave에서 처리한 결과 파일이 저장되는 경로
Usage = 일을 부여할때 어떠한 기준으로 일을 부여할지
Launh method = slave노드로 접속할때 사용할 방식
현재 컨테이너 내부의 ssh포트는 22로 지정이되어있고 각각의 ip는 127.17.0.x로 지정
컨테이너 생성
docker run --privileged --name jenkins-node1 -itd -p 30022:22 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker-server:m1 /usr/sbin/init
컨테이너 접속
ssh root@localhost -p 30022
만약 에러가 발생한다면 /Users/[사용자 이름]/.ssh/known_hosts파일의 내용중 30022에 해당하는 라인을 삭제
slave노드가 마스터로부터 작업을 받기위해선 JDK가 필요한데 설치해줍시다.
java 항목 검색
yum list java*jdk-devel
항목중 11을 선택하여 설치해주기
yum install -y java-11-openjdk-devel.aarch64
git과 ncurses(clear사용가능하게 해줌) 설치
yum install -y ncurses git
설치후 확인
javac -version
cmd창을 하나더켜서 jenkins-server에 접속해줍니다.
그 후 방금 jdk를 설치한 node1인 salve jenkins의 호스트 확인
hostname -i
결과 172.17.0.6으로 나옴
jenkins-server에서 node1으로 접속
ssh root@172.17.0.6
비밀번호 P@ssw0rd
접속이되었다면 jenkins-server에서 node1으로 접속이 잘된것을 확인해볼 수 있다.
접속확인이 되었다면 다시 jeknins-server로 나와 키생성하기
ssh-keygen
경로와 비밀번호는 모두 엔터 했습니다. 기본값 지정 및 없음
키복사 jenkins-server에서 node1으로 접근하기위한 키를 복사해서 넣어주기
ssh-copy-id root@172.17.0.6
설정완료후 node1으로 접속해보면 비밀번호없이 잘 접속되는것을 확인
jenkins-server와 node1접속할 준비는 완료
이제 jenkins서버에 node1을 등록해봅시다.
jenkins 관리 -nodes - new node클릭
이름과 permanet Agent 선택해주고 create
5개의 일을 처리 할 수 있도록 설정 저장될 파일의 경로를 지정해주고 node1 cmd에서 저장될 dir을 생성해주었습니다.
node1에 slave1이라는 디렉토리 만들어주기
[root@fad0d1f3a691 ~]# mkdir slave1
ssh로 접속할것이니 ssh로 지정해주고 node1의 ip를 입력
Credentials에 add를 눌러 jenkins선택하여 밑과같이 추가해줍시다.
root계정이고 password는 ssh접속할때 입력한 P@ssw0rd로 입력
add해준뒤 목록에보면 방금 추가한 root계정이 보일탠데 그것을 선택 해주고 저장합시다.
저장하게되면 slave1이라고 node가 추가된것을 확인할 수 있음
잘 입력되어 잘생성되었는지 확인할려면 slave1으로 들어가서 확인하시면
위와같은 형태로 깔금하게 나온다면 성공이다 실패한다면 log를 확인할 수 있는 버튼이 보인다면 문제가 있는것이다.
이제 node1을 사용해볼것인데 My-First-Project 구성으로 이동해서 설정해보자
Restrict where this project can be run을 채크해주고 방금 생성한 slave1을 지정해주고 저장
빌드 후 console 확인해보면
slave1/workspace에 잘 저장된 모습이다 이제 cmd에서 확인을 해봅시다.
존재 하지 않았던 workspace가 생겼고 안의 빌드한 프로젝트가 잘 생긴것을 확인
Second는 pipeline로 연계되어서 생성된것
'CI CD > JenKins' 카테고리의 다른 글
AWS EC2 인스턴스 생성 (0) | 2023.07.03 |
---|---|
Jenkins(Mac m1) 26 Jenkins Slave Node에서 빌드 (0) | 2023.07.03 |
Jenkins(Mac m1) 24 Jenkins + sonarqube연동 pipeline (0) | 2023.07.03 |
Jenkins(Mac m1) 23 SonarQube bad code (0) | 2023.06.30 |
Jenkins(Mac m1) 22 SonarQube (0) | 2023.06.30 |