튜토리얼: 프로젝트 러너 만들고 등록하고 실행하기
이 튜토리얼에서는 GitLab에서 첫 번째 러너를 구성하고 실행하는 방법을 안내합니다.
러너는 GitLab Runner 애플리케이션에서 작업을 실행하는 GitLab CI/CD 파이프라인의 에이전트입니다.
작업은 .gitlab-ci.yml
파일에 정의되고 사용 가능한 러너에 할당됩니다.
GitLab에는 세 가지 유형의 러너가 있습니다:
- 공유: GitLab 인스턴스의 모든 그룹 및 프로젝트에서 사용 가능합니다.
- 그룹: 그룹의 모든 프로젝트 및 하위 그룹에서 사용 가능합니다.
- 프로젝트: 특정 프로젝트와 관련이 있습니다. 일반적으로 프로젝트 러너는 한 번에 한 프로젝트에서 사용됩니다.
이 튜토리얼에서는 기본 파이프라인 구성에 정의된 작업을 실행하는 프로젝트 러너를 만듭니다.
시작하기 전에
러너를 만들고 등록하고 실행하려면 먼저 GitLab Runner가 로컬 컴퓨터에 설치되어 있어야 합니다.
빈 프로젝트 만들기
먼저 CI/CD 파이프라인 및 러너를 만들 수 있는 빈 프로젝트를 만듭니다.
빈 프로젝트를 만들려면:
- 왼쪽 사이드바에서 위쪽에 있는 Create new() 및 New project/repository 중 이를 선택합니다.
- Create blank project를 선택합니다.
- 프로젝트 세부 정보를 입력합니다.
-
Project name 필드에 프로젝트 이름을 입력합니다. 이름은 소문자 또는 대문자 (
a-zA-Z
), 숫자 (0-9
), 이모지, 또는 밑줄(_
)로 시작해야 합니다. 또한 점(.
), 플러스(+
), 대시(-
), 또는 공백을 포함할 수 있습니다. - Project slug 필드에 프로젝트 경로를 입력합니다. GitLab 인스턴스는 URL 경로로 슬러그를 사용합니다. 슬러그를 변경하려면 먼저 프로젝트 이름을 입력한 다음 슬러그를 변경합니다.
-
Project name 필드에 프로젝트 이름을 입력합니다. 이름은 소문자 또는 대문자 (
- Create project를 선택합니다.
프로젝트 파이프라인 만들기
다음으로 프로젝트용 .gitlab-ci.yml
파일을 만듭니다. 이 파일은 GitLab CI/CD에 대한 지시문을 지정하는 YAML 파일입니다.
이 파일에서 다음을 정의합니다:
- 러너가 실행해야 하는 작업의 구조 및 순서
- 특정 조건을 만났을 때 러너가 내릴 결정
- 왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트 또는 그룹을 찾습니다.
- Project overview를 선택합니다.
- 플러스 아이콘()을 선택한 다음 New file을 선택합니다.
-
Filename 필드에
.gitlab-ci.yml
를 입력합니다. -
큰 텍스트 상자에 다음 샘플 구성을 붙여넣습니다:
stages: - build - test job_build: stage: build script: - echo "프로젝트 빌드 중" job_test: stage: test script: - echo "테스트 실행 중"
이 구성에서는 러너가 실행하는 두 작업이 있습니다: 빌드 작업과 테스트 작업입니다.
- Commit changes를 선택합니다.
프로젝트 러너 만들고 등록하기
다음으로 프로젝트 러너를 만들고 등록합니다. 프로젝트 파이프라인에서 작업을 가져올 수 있도록 러너를 GitLab에 연결하기 위해 러너를 등록해야 합니다.
프로젝트 러너를 만들려면:
- 왼쪽 사이드바에서 프로젝트를 찾아 Settings > CI/CD를 선택합니다.
- Runners 섹션을 확장합니다.
- New project runner를 선택합니다.
- 사용 중인 운영 체제를 선택합니다.
- Tags 섹션에서 Run untagged 확인란을 선택합니다. Tags는 러너가 실행할 수 있는 작업을 지정하며 선택 사항입니다.
- Create runner를 선택합니다.
- 명령줄에서 러너를 등록하도록 안내를 따릅니다. 프롬프트가 표시되면:
-
executor
에는 러너를 직접 호스트 컴퓨터에서 실행할 것이므로shell
을 입력합니다. executor는 러너가 작업을 실행하는 환경입니다. -
GitLab instance URL
에는 GitLab 인스턴스의 URL을 사용합니다. 예를 들어 프로젝트가gitlab.example.com/yourname/yourproject
에 호스팅되어 있다면 GitLab 인스턴스 URL은https://gitlab.example.com
입니다. 프로젝트가 GitLab.com에서 호스팅되는 경우 URL은https://gitlab.com
입니다.
-
-
러너를 시작합니다:
gitlab-runner run
러너 구성 파일 확인하기
러너를 등록한 후에는 구성 및 러너 인증 토큰이 config.toml
에 저장됩니다. 러너는 작업 대기열에서 작업을 가져올 때 GitLab과 인증하기 위해 해당 토큰을 사용합니다.
config.toml
을 사용하여 고급 러너 구성을 정의할 수 있습니다.
다음은 러너를 등록하고 시작한 후 config.toml
이어야 하는 내용입니다:
[[runners]]
name = "my-project-runner1"
url = "http://127.0.0.1:3000"
id = 38
token = "glrt-TOKEN"
token_obtained_at = 2023-07-05T08:56:33Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "shell"
파이프라인을 트리거하여 러너 실행하기
다음으로 프로젝트에서 파이프라인을 트리거하여 러너가 작업을 실행하는 것을 확인해보세요.
- 왼쪽 사이드바에서 검색 또는이동을 선택하고 프로젝트를 찾습니다.
- 빌드 > 파이프라인을 선택합니다.
- 파이프라인 실행을 선택합니다.
-
작업을 선택하여 작업 로그를 확인합니다. 출력은 다음 예시와 유사해야 합니다. 이는 러너가 성공적으로 작업을 실행하는 것을 보여줍니다:
gitlab-runner 16.2.0 (782e15da)로 실행 중 my-project-runner TOKEN, 시스템 ID: SYSTEM ID에서 실행 중 "shell" 실행자를 준비 중 00:00 Shell (bash) 실행자 사용 중... 환경 준비 중 00:00 /Users/username/.bash_profile: 라인 9: setopt: 명령어를 찾을 수 없음 MACHINE-NAME에서 실행 중... Git 리포지토리에서 소스 가져오는 중 00:01 /Users/username/.bash_profile: 라인 9: setopt: 명령어를 찾을 수 없음 git의 변경 사항을 깊이 20으로 가져오는 중... 기존 Git 리포지토리를 다시 초기화했습니다: /Users/username/project-repository ref가 main인 7226fc70을 분리된 HEAD로 체크아웃 중... 이 리포지토리에는 Git LFS가 설치되어 있지 않아 객체 체크아웃을 건너뜁니다. 'git lfs install'로 설치를 고려해보세요. Git 서브모듈 설정을 건너뜁니다 작업 스크립트의 "step_script" 단계 실행 중 00:00 /Users/username/.bash_profile: 라인 9: setopt: 명령어를 찾을 수 없음 $ echo "프로젝트 빌드 중" 프로젝트 빌드 중 작업 성공
이제 성공적으로 첫 번째 러너를 생성, 등록 및 실행했습니다!