젠킨스 외부서버 SSH 빌드 - 젠킨스 서버와 배포 서버 분리하기

젠킨스 메모리 이슈로 서버가 죽는 현상이 생겨 서비스를 배포할 서버, 젠킨스 서버를 분리하기로 했다.

 

1. 도커파일 생성 - 젠킨스 서버 빌드

: 원하는 위치에 docker-compose-jenkins.conf.yml 파일을 생성한다.

# docker-compose 서비스 버전
version: "3.8"

services:
  jenkins:
    container_name: jenkins
    image: jenkins/jenkins:lts
    ports:
      - 8088:8080
    environment:
      TZ: "Asia/Seoul"
    volumes:
      - /home/jenkins/jenkins_home:/var/jenkins_home

 

2. docker compose -f docker-compose-jenkins.conf.yml up -d --build 실행

 

3. 젠킨스에서 아래 플러그인을 설치한다.

  • Publish Over SSH
  • SSH2 Easy Plugin

4. Jenkins 관리 들어가서

 

5. 원격서버 정보를 입력한다.

 

Hostname: 원격 서버 주소
Username: 원격 서버 접속 계정 id
Remote Directory: 연결할 원격 서버 디렉토리
Password: 원격 서버 접속 password

 

6. Item 생성 - Freestyle project 로 생성

 

 

7. 깃허브 연결

 

8. Build Steps > Send files or execute commands over SSH (원격 서버에 파일 복제, 커멘드 사용)

: 깃허브로 프로젝트를 다운로드 받은 후 원격서버에 파일을 복제한다.

  (사진에서 보이는 **/* 는 remote directory 의 전체 폴더와 파일을 복제) 

Source files : 복제할 소스 파일 **/* >> 원격 서버에 전체 파일 복제
Remote directory : 복제할 원격 서버 디렉토리 위치
Exec command : 원격 서버 커맨드 스크립트

 

9. 쉘스크립트 파일 실행 - 도커파일 실행 sh 실행

: 원격서버에 소스 복제 후 원격 서버 실행에 사용할 쉘스크립트 파일을 실행해준다.(경로는 원격서버 기준)

cd /data/backend/config/docker
chmod +x blue-green.sh
./blue-green.sh
반응형