개요
2025.02.06-[GitLab] 파이프라인 구성에서는 GitLab 호스팅 러너를 사용하여 파이프라인을 실행해 보았다. 이번 글에서는 직접 구성하고 등록한 러너에서 파이프라인을 실행해보려고 한다.
테스트 환경은 다음과 같다.
- GitLab 서비스 : gitlab.com
- 러너 유형 : 프로젝트 러너
- 사용 서버 : AWS EC2 Ubuntu 22.04 LTS arm64
방법을 적어둔다.
프로젝트 러너 생성
1. New project runner 버튼 클릭
프로젝트의 CI/CD 설정 페이지에서 New project runner 버튼을 클릭한다.
2. 신규 프로젝트 러너 생성
러너의 태그 값을 지정하고, 필요시 추가 구성 옵션을 설정한다. 설정이 완료되면 러너 만들기 버튼을 클릭한다.
이번 글에서는 별도 설정 없이 생성했다. 별다른 이상이 없으면 아래와 같이 Runner created라는 메시지와 함께 러너 등록 페이지로 이동한다.
러너 설치
GitLab 프로젝트에 러너를 등록하기 위해서는 먼저 러너 설치가 선행되어야 한다.
1. 러너 설치
Register runner 페이지를 보면 친절하게 사용자가 어떤 환경에서 러너를 동작시킬 것인지 선택할 수 있도록 했다.
적절할 환경을 선택한 후 하단의 How do I install GitLab Runner? 버튼을 클릭하면 위 그림과 같이 오른쪽에서 설치 방법을 확인할 수 있다. 사용하고자 하는 구조를 선택한 후 명령어를 복사 및 실행하여 러너를 설치하자.
이 글에서는 Ubuntu arm64 서버를 사용하고자 한다.
1.1) GitLab 러너 다운로드 및 실행 권한 추가
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64
# Give it permission to execute
sudo chmod +x /usr/local/bin/gitlab-runner
1.2) gitlab-ruuner 사용자 추가
# Create a GitLab Runner user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
1.3) GitLab Runner 설치 및 시작
# Install and run as a service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
러너 등록
위의 Register runner 페이지를 이어서 진행한다.
1. gitlab runner 등록
gitlab-runner register 명령을 실행해 runner를 등록한다.
gitlab-runner register \
--url GITLAB_URL \
--token TOKEN
# 예시
gitlab-runner register \
--url https://gitlab.com \
--token TOKENTOKEN
프롬프트가 나타나면 GitLab URL, Runner 이름, 그리고 Runner Executor를 설정하게 된다. 이 글에서는 구성하기 가장 간단한 Executor인 shell executor를 선택했다.
2. gitlab runner 실행
공식 문서에 아래 명령으로 runner가 job을 가져올 수 있는지 확인할 수 있다고 한다.
gitlab-runner run
일단은 위와 같이 출력이 발생했다.
3. 등록 완료
이상이 없으면 아래처럼 메세지가 표시되는 것 같다. (꽤나 귀엽…….)
러너 목록을 확인하면 다음과 같이 등록한 러너를 확인할 수 있다.
파이프라인 실행
새로 생성한 runner에서 Job을 동작시켜 보자. 일단 인스턴스 러너는 비활성화 처리해 두었다.
이제 Pipeline의 Job이 새 runner에서 동작할 수 있도록 .gitlab-ci.yml의 각 Job에 tags 속성을 추가하고 실행 환경을 확인하고자 cat /etc/issue 명령을 추가했다.
tags 속성은 프로젝트에서 사용할 수 있는 모든 runner 목록 중 특정 runner를 선택하기 위해서 사용한다.
위에서 runner를 등록할 때 runner의 태그를 지정했는데, 당시 지정한 태그를 모두 나열해주어야 한다. 변경 사항을 커밋하면 파이프라인이 실행된 모습을 확인할 수 있고,
Job의 정보와 로그를 보면 실행한 러너와 실행한 러너의 OS 정보를 확인할 수 있다.
참고 문서
https://docs.gitlab.com/runner/install/
https://docs.gitlab.com/runner/register/
https://docs.gitlab.com/runner/executors/
https://docs.gitlab.com/runner/commands/#gitlab-runner-run