GITLAB CI/CD 구축하기 - (1) GitLab Runner등록

성현·2024년 11월 22일

우리회사는 수동배포를 해왔다. 로컬에서 원격에 있는 소스를 받고, jar를 말아 쉘 스크립트를 실행시켜주고...
gitlab을 도입한 이상 번거로운 수동배포가 아닌 자동배포로 변경하고자 한다.

CI/CD
CI (Continuous Integration) : 지속통합. 새로운 소스코드를 자동으로 빌드하여 검증한 뒤, 통과한 경우에 변경사항을 공유 repository에 통합.
CD (Continous Deliver/Deployment) : 지속배포. 지속적으로 릴리즈할 수 있는 프로세스이다. 검증완료된 변경사항을 자동으로 배포.
Pipeline : Build, Test, Staging등 회사 업무 스타일을 고려한 반영 프로세스

GitLab CI구성

GitLab에서 CI를 구성하기 위해서는 관련 도구를 설치해야한다.
이를 GitLab Runner 라고한다.

GitLab Runner

GitLab과 함께 작동하여 코드 변경 사항을 자동으로 빌드, 테스트 및 배포하는 CI도구이다.

  • 작동 방식
  1. Pipeline이 구성된 GItLab Repository에 코드 변경 사항을 푸시하면 GitLab은 하나 이상의 작업이 포함된 새 파이프 라인을 생성한다.
  2. GItLab Runner는 GitLab서버에서 실행할 새 작업을 주기적으로 확인하고 실행한다.
  3. Runner는 .gitlab-ci.yml파일에 정의된 작업 단계를 실행한다.
    (빌드, 테스트, 배포 등)
  4. Runner가 작업을 실행하면 실시간 상태 업데이트, 로그 등을 GitLab서버로 보낸다.
  5. 사용자는 이를 모니터링하고 검토한다.
  6. 작업이 완료되면 Runner는 최종상태를 GitLab서버에 보고한다.
  • 내가 이해한 버전
  1. gitLab에 runner 등록 (이 url로 어떤 token을 가진 어떤 tag의 러너가 올건지 받아드리기위한 준비)
  2. 도커에 파이프라인을 수행할 gitlab runner 설치
  • Runner의 종류
    [공유러너] GitLab인스턴스 내 모든 프로젝트에서 사용할 수 있다.
    [그룹러너] 특정 프로젝트 그룹 전용으로 관리한다.(다른 프로젝트 간섭없음)
    [개인러너] 단일 프로젝트에 적용한다.

파트와의 협의가 안되어 있기에 나는 우선 프로젝트 러너 를 선택했다.

1. GitLab 에 runner 정보 입력하기

GitLab> 프로젝트 > 셋팅 > Runner를 expand하면 다음과 같은 화면을 볼 수 있다.

나는 프로젝트 러너 로 도커를 설정하였으니 Project runers의 New project runner를 눌러 등록을 해준다.

  • 태그 : 작업하려는 태그와 맞춰야한다.
  • 설명 : runner의 설명
  • maximum job timeout : 하나의 job이 수행되어야하는 최대시간, 내 프로젝트에서는 길어도 10분을 넘지않으나 넉넉하게 30분으로 잡았다(1800)


디폴트 값으로 설정을 해주면 러너를 만드는데 성공하게된다.

이후 나오는 페이지에 STEP이 상세하게 표시되어있다.
1. GitLab Runner가 설치되어있어야할것
2. STEP1 : 다음 커맨드 라인에 url과 token을 붙여넣을것

2. GitLab Runner Docker설치

GitLab Runner 도커 이미지 설치

docker pull gitlab/gitlab-runner:alpine3.12-v14.10.0

진행 프로세싱 바가 뜨고,
완료되었다는 메세지가 나온다.

컨테이너 실행

docker run -d 
--name gitlab-runner 
--restart always 
-v /srv/gitlab-runner/config:/etc/gitlab-runner 
-v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:alpine3.12-v14.10.0

이 또한 비슷한 프로세싱 바가 뜨고 완료된다.

gitlab-runner 컨테이너 접속

docker ps

먼저 실행정보를 확인한다.

docker exec -it gitlab-runner bash

터미널과 같이 진입할 수 있게된다.

3.Docker에 GitLab Runner 정보 등록

1번에서는 runner 와 gitlab을 이어주기 위한 정보를 얻은것이다.
위에서 확인한 url과 token값을 가지고 GitLab Runner Container로 접속해 등록해준다.

(도커로 gitlab runner 실행 후 진행 )
실행 명령어 docker run -d [Container Image]

docker exec -it gitlab-runner gitlab-runner register

이제 여러 물음이 나올것이다.

  • Enter the GitLab instance URL (for example, https://gitlab.com/) : gitlab UI설정에서 확인한 URL입력
    Enter the registration token:
  • Enter a description for runner: 러너 상세 내용
  • Enter an executor : runner를 뭘로 실행할건지 등록한다. ( docker로 지정)
  • Enter the default Docker image(for example, ruby:2.7) : 디폴트 이미지를 등록한다.(alpine:latest)

[참고]
config.toml에 설정정보가 있어 하기 명령어로 확인가능하다

more /etc/gitlab-runner/config.toml
profile
행동하는 사람

0개의 댓글