DevOps

우분투 리눅스에서 GitLab CI/CD 설정

Seogineer 2021. 8. 17. 16:04

1. 우분투 리눅스에 gitlab-runner 설치

 

Install GitLab Runner manually on GNU/Linux | GitLab

Documentation for GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab, and GitLab Runner.

docs.gitlab.com

 

2. runners 등록하기

GitLab 저장소 -> Settings -> CI/CD -> Runners -> Expand

 

만약 아래와 같이 초록색 동그라미가 보인다면 다시 등록할 필요가 없다.

그렇지 않다면 아래 내용을 띄워둔다.

 

그리고 개발 서버 터미널에서 아래와 같이 명령어를 입력하고 등록 과정을 진행한다.

sudo gitlab-runner register

--- 위 스크린샷 기준
--- url : "Specifiy the following URL during the Runner setup" 내용 입력
--- registration-token : "Use the following registration token during setup" 내용 입력
--- description : deploy runner
--- tag-list : deploy
--- executor : shell

 

등록이 완료되면 gitlab-runner를 실행한다.

sudo gitlab-runner start

 

3. 프로젝트 root 경로에 .gitlab-ci.yml 생성

# master 브랜치에 push가 들어올 때 동작하는 job
deploy-to-server:	# 임의의 job 이름
  stage: deploy 	# stage는 build, test, deploy가 있음

  only:
    - master 	# master 브랜치에 커밋이나 변경사항이 있을 때만 동작

  script:
    - echo 'deploy to server'
    - cd /home/gitlab-runner/builds/[gitlab-runner 이름]/0/../ 	# 프로젝트의 root 폴더로 이동
    - mvn clean install  # maven 명령어로 jar 파일 생성(maven이 설치되어 있어야 명령어를 실행할 수 있다.)
    - cd /home/프로젝트명/target/		# jar 파일이 생성된 위치로 이동
    - java -jar 파일명.jar 	# jar 파일 실행

  tags:
    - deploy	# runner를 등록할 때 입력했던 tag

 

 

위 script에서 [gitlab-runner 이름]은 아래 경로로 따라가면 확인할 수 있다.

GitLab 저장소 -> Settings -> CI/CD -> Runners -> Expand

위 예제는 ZKxsgifX가 runner 이름이다.

 

4. CI/CD 수행

프로젝트를 gitlab에 push하면 자동으로 CI/CD가 수행된다.

진행과정은 아래 메뉴에서 확인할 수 있다.

GitLab 저장소 메뉴 -> CI/CD -> pipeline

 

자세한 진행 과정을 보려면 pipeline 번호(#214)를 누르고 job 이름(deploy-to-server)를 누르면 자세한 CI/CD 과정을 볼 수 있다.

Job succeeded가 나오면 CI/CD가 성공한 것이다.

 

에러 발생 시 아래 글 참고

 

GitLab CI/CD 에러 해결

문제 sudo: no tty present and no askpass program specified. 메세지가 나오면서 CI/CD가 안 될 경우 해결 sudo vi /etc/sudoers 명령어로 파일을 열어서 아래 내용을 스크린샷과 같은 위치에 추가한다. gi..

seogineer.tistory.com

 

 

참고

 

GitLab CI/CD Pipeline 구성과 .gitlab-ci.yml

이 글은 GitLab CI/CD Pipeline 과 구성파일인 .gitlab-ci.yml 에 대해 설명합니다. GitLab CI/CD Pipeline 구성 CI/CD 파이프라인 수동 배포 설정 수동 job 실행 시 변수 설정 CI/CD 파이프라인 그룹화 파이프라인 아

bravenamme.github.io

 

Gitlab-CI 구성 & .gitlab-ci.yml 예제

CI/CD 도입 Gitlab을 설치하는 방법은 전에 다뤘다. 이번에는 CI/CD 도구를 도입했다. 예전에 일했던 프로젝트에서는 주로 jenkins를 사용했는데, 이번에는 Gitlab-CI를 써보기로 했다. Git 초심자가 대부

lovemewithoutall.github.io

 

GitLab-CI Runner 소개, 설치, 등록편 on CentOS, Windows (빌드 & 패키징 & 테스트 자동화)

ref : Install Gitlab Runner 이 글은 Gitlab CI - Runner설치에 대해 다룬다 * 8.x 버전당시 Gitlab CI 아키텍쳐 Runner는 CI시스템에서 우리가 명세한 작업을 수행하고 결과를 Gitlab으로 피드백하는 녀석이다..

allroundplaying.tistory.com