-
Jenkins: Jenkins Publish Over SSH공부합시다!/Jenkins 2023. 1. 18. 00:13728x90
약속대로 오늘은 가장 간단하고 심플한 SSH를 이용한 Build 및 배포에 대해서 설명드립니다.
Node에 Infra를 배포하는 가장 쉬운 방법은 SSH를 이용한 방법입니다.
Jenkins에서는 Publish Over SSH 라는 Plugin을 설치해서 활용이 가능합니다.
설정 또한 간단하기 때문에 디렉토리 구조만 잘 이해 하신다면 크게 문제는 없을 겁니다.
1. Plugin Install
2. Publish Over SSH 구성
3. docker 배포
4. Test
순서로 진행하겠습니다.
1. Plugin Install
1.1. Publish Over Install
1.1.1. DashBoard 'Jenkins관리' -> '플러그인 관리' 클릭
1.1.2. 'Avaliable plugins' -> ssh 검색
1.1.2.1. 'Publish Over SSH' 선택 후 'Install without restart' 선택
1.1.3. 성공 메세지 확인 후 '메인 페이지로 돌아가기' 클릭
2. Publish Over SSH 구성
2.1. SSH Server 설정
2.1.1. DashBoard의 'Jenkins 관리' -> '시스템설정' 클릭
2.2. SSH Servers 섹터
2.2.1. node1 설정
2.2.1.1. Name: node1 -> build에서 선택하는 이름이 됩니다.
2.2.1.2. Hostname: 10.0.0.11
2.2.1.3. Username: root -> 관리자 권한이 편하죠!
2.2.1.4. Remote Directory: 기존에 만들어 두었던 /dep 디렉토리 활용,
2.2.1.5. Password: It1
2.2.1.6. 반드시 Test 해서 'Success' 확인
2.2.2. node2 설정
2.2.2.1. Name: node2 -> build에서 선택하는 이름이 됩니다.
2.2.2.2. Hostname: 10.0.0.12
2.2.2.3. Username: root -> 관리자 권한이 편하죠!
2.2.2.4. Remote Directory: 기존에 만들어 두었던 /dep 디렉토리 활용,
2.2.2.5. Password: It1
2.2.2.6. 반드시 Test 해서 'Success' 확인
2.2.2.7. 하단의 '저장' 클릭
3. docker 배포
3.1. Node 확인
3.2. Project 생성
3.2.1. DashBoard의 'New Item' 클릭
3.2.2. Projectl 생성
3.2.2.1. Name: docker Install
3.2.2.2. Freestyle project 선택
3.2.2.3. OK 클릭해서 저장
3.3. Project 세부설정
3.3.1. 설명: node1 docker install test -> 알아보기 쉽게
3.3.2. 다른 옵션을 설정할 필요없습니다.
3.3.3. Build 환경 섹션
3.3.3.1. 'send files or execute commands over SSH after the build runs' 빌드 실행 후 파일 전송 및 명령실행
3.3.3.2. Name: node1
3.3.3.3. source file: docker.sh -> build후 생성 및 전송할 파일명 입니다. build는 더 아래쪽에서 설정합니다.
3.3.3.4. Remote Directory: SSH 설정에서 /dep를 디렉토리로 지정했습니다. 따라서 / 디렉토리는 node의 /dep 디렉토리
3.3.3.5. Exec command: sh /dep/docker.sh 전송한 파일 실행
3.3.4. Build Steps 섹션
3.3.4.1. docker.sh 파일을 생성하는 스크립트 작성
cat > docker.sh << EOF #! /bin/bash yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum -y install docker-ce docker-ce-cli containerd.io systemctl start docker systemctl enable docker EOF docker 완전 삭제 명령어 systemctl stop docker yum -y remove docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker rm -rf /run/docker /run/docker.sock
3.4. Build
3.4.1.Project 상태 창
3.4.1.1. '지금 빌드' -> 성공
3.4.1.2. console Output 클릭
3.4.1.3. 콘솔 출력의 성공 메세지 확인
4. Test
4.1. Node 1
4.1.1. Node 1에서 설치된 Docker Version과 전송된 docker.sh 파일 확인
자! 그럼 생각을 잠시 해볼까요!
배포하는게 docker가 아니라 K8S라면 쉽게 code로 간단하게 여러 Node에 배포를 할 수 있습니다.뭔지 느낌이 오세요!
Project가 얼마 남지 않았으니 조금씩 따라 오셔야 합니다.
GIT -> GITHUB -> Jenkins로 이어지는 CI/CD가 이래서 재밌습니다.
Code의 변화가 있을 때 자동배포라?
Have a nice day!
728x90'공부합시다! > Jenkins' 카테고리의 다른 글
Jenkins: Jenkins Permission (0) 2023.01.13 Jenkins: Jenkins Project 생성 및 Build Test (0) 2023.01.11 Jenkins: 젠킨스 Docker 설치 (0) 2023.01.09 Jenkins: 젠킨스 분산 빌드 환경 구성(2024년 7월 24일 내용추가) (1) 2022.02.23 Jenkins : Jenkins 설치 (3) 2022.01.04