[CI/CD] GitLab를 이용한 CI/CD 파이프라인 구축해보기 2 - GitLab을 이용한 GitLab-Runner 구축

Yu Seong Kim·2024년 10월 23일
post-thumbnail

저번 포스팅에서 GitLab에 프로젝트를 푸시하고, 다양한 환경설정 및 Docker를 ECR 저장소에 푸시하여 잘 실행되는지 확인했습니다. 이번 포스팅은 이러한 과정을 GitLab과 Runner를 이용해서 자동화를 해보겠습니다. 아래와 같은 두 단계를 진행했다고 보시면 됩니다.
그렇다면 이 두 단계를 자동화 하려면 어떤 방식으로 진행해야 할까요?

GitLab CI 구성

GitLab은 크게 두 가지 요소로 이루어져 있습니다.

  • GitLab CI는 저장소 확인 , 유저 관리등을 수행하는 기능.
  • Git Runner는 GitLab에서 정의된 파이프라인 스크립트를 실행하는 역할.
    즉, GitLab CI가 GitLab Runner를 작동 시키는데 GitLab Runner는 사용자가 개발하여 푸시한 코드가 있는 Git 저장소에서 빌드한 코드를 읽어와 GitLab CI가 설정한 파이프라인 스크립트를 읽어서 배포하는 과정입니다.

GitLab Runner 설치

구글에 gitlab runner install ubuntu을 검색하고, 해당 사이트에 접속합니다.

자신이 사용하는 OS를 선택합니다.
저는 MacOs를 선택했습니다.

선택하여 들어가면 패키지를 다운로드할 수 있는 명령어가 있으며, 복사하여 명령어를 실행하면 됩니다.

sudo curl --output /usr/local/bin/gitlab-runner "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-darwin-arm64"


이 과정은 GitLab Runner 패키지를 다운로드 한 것입니다. 그러므로 이 패키지를 이용하여 GitLab Runner를 설치합니다.

sudo dpkg -i gitlab-runner_amd64.deb

설치가 완료 되었으면, 잘 실행되는지 확인합니다.

ps -ef | grep gitlab


잘 실행 되고 있습니다!!

GitLab에서 Git Runner 등록

이전 포스팅에서 만든 프로젝트에 대한 GitLab Runner를 해주겠습니다.

  1. 연결할 프로젝트를 (test-application)을 눌러서 들어갑니다.
  2. 좌측 메뉴 바에 Setting -> CICD 에서 클릭.
  3. Runners 누르면 나오는 New Project Runner로 러너 생성

    4.러너생성 -> tag이름 설정 , Run untagged jobs 체크(아무 태킹이 안되어 있더라도 실행 될 수 있게 설정 하는 것)
  4. 이렇게 Create Runner를 누르면 GitLab Runner가 해당 프로젝트에 등록할 준비가 끝납니다.

    Step1의 명령어를 깃랩이 설치된 폴더에 실행합니다. GitLab CI는 이 빨간 부분의 토큰을 가지고 연결할 GitLab Runner를 우리가 허용한 GitLab Runner라고 판단하고 등록합니다.

우분투 서버에 아래의 명령어를 복사하여 입력합니다.

gitlab-runner register --url https://gitlab.com --token <토큰> arch=amd64 os=linux pid=89953 revision=c72a09b6 version=16.8.0

(이 부분은 이미 runner를 만들어놔서 캪쳐를 하지 못하였습니다.)
명령어를 입력하면 총 3가지의 입력을 하는 창이 주어집니다.
1. [https://gitlab.com]: -> 그대로 엔터치면 됩니다.
2. [자신의 우분투 IP]: 사용할 Runner 이름을 입력
3. 아래 와 같이 Enter an executor 창이 나왔을 때 스크립트를 실행하기 위해서 shell을 선택했습니다.

Enter an executor: parallels, virtualbox, docker, docker-windows, kubernetes, instance, custom, ssh, docker+machine, docker-autoscaler, shell:
shell
  1. 설정을 완료하면 gitlab-runner실행.
gitlab-runner run 를 입력.
  1. 러너활성화 확인

  2. bash_logout 파일 수정

    이 파일의 모든 내용을 주석 처리하지 않으면 나중에 러너를 실행할 때 오류가 뜰 수 있습니다.

수정 후

sudo systemctl restart gitlab-runner - 설정파일 수정했으므로 실행
sudo systemctl enable gitlab-runner - 부팅할 때 자동으로 실행하기 위한 명령어

결론

이렇게 gitLab-Runner를 구축이 완료되었습니다. 사실 많은 명령어들을 gitLab에서 제공해주기 때문에 어렵진 않지만, 순서와 파일 경로를 잘 파악해서 해야 오류 없이 GitLab-Runner를 구축할 수 있습니다. GitLab에 대해서 공부중 러너라는 것도 알게 되면서 자동화 시스템에 대한 궁금증이 하나씩 해결되는 것 같습니다. 다음 포스팅은 구축한 Runner를 가지고 CI/CD 파이프라인을 구축하겠습니다.

profile
Development Record Page

0개의 댓글