Jenkins로 배포 자동화하기

일고잉·2021년 8월 16일
0

배포

목록 보기
1/1
post-thumbnail

Jenkins와 Gitlab으로 배포 자동화를 해보자

서버는 AWS ec2를 사용하며, 앱은 Docker 컨테이너에서 동작한다

1. Jenkins 설정

  • gradle, nodejs, github/gitlab 등 플러그인을 설치하고 설정을 시작한다

Jenkins 관리 > 시스템 설정

  • Jenkins가 실행중인 서버의 URL 작성
  • Gitlab / Github URL 작성
    Git 접근을 위해 AccessToken을 받아 Credential에 설정한다

  • ssh로 서버에 접속하기 위한 설정
    Remote Directory 는 ssh 접속 시 들어가는 경로. 꼭 설정할 것
    Docker 명령어를 실행할 디렉토리
  • 프로젝트 빌드 설정 (Gradle, Maven)
    사용할 gradle 버전 설정
  • NodeJS 설정

프로젝트 생성 & 설정

  • freestyle project 로 생성
  • 소스코드 관리
    빌드할 repository의 url, 브랜치 설정
    인증을 위한 Credential(계정) 설정 (Username with password)
  • 빌드 유발
    원하는 빌드 유발 설정을 한다
    GitLab webhook 설정에 아래 webhook URL을 사용하니 이 부분을 꼭 기억하자

    Webhook 설정을 위한 Secret token을 발급한다
  • 빌드 환경 설정
  • 빌드 시 필요한 명령어를 작성한다
    빌드에 필요하지만 버전 관리 되지 않는 파일은 Filezilla로 업로드하여 명령어를 통해 복사했다

  • 빌드 후 조치
    ssh 연결을 위한 설정을 해주고

    docker 명령어를 실행할 위치로 jar 파일을 옮겨야 하니 그에 대한 설정을 한다
    Source files는 말그대로 옮길 파일을 특정한다
    Remove prefix는 Source files에 작성한 파일의 경로의 앞에서 지울 부분을 정한다
    Remote directory는 파일을 옮길 디렉토리다 (위에서 설정한 Root directory 다음부분을 쓴다)
    Exec command는 파일을 옮긴 후 실행할 명령어를 작성한다

2. Gitlab 설정

  • Webhook
    Jenkins 프로젝트 > 구성 > 빌드 유발 에서 발급한 토큰을 사용하고, 빌드 트리거를 설정한다

0개의 댓글