Menu

메모용 개발 블로그

전체보기 > GitLab >

Gitlab Runner Shared Runner(공유 러너) 세팅

2022-12-20 12:45:25

서론

그간 GitLab Runner는 프로젝트 별로 하나하나 연결해주고 있었다.

즉 "프로젝트" 단위 러너인 셈이다.

하지만 후에 gitlab을 이동하다던지 서버 환경이 변경되면 모든 프로젝트에 대해서 새롭게 연결작업을 해주어야하는데.

여간 귀찮은일이 아닐 수 없다.

그래서 보니 Shared Runner, Group Runner라는 것이 있었다.

이들은 특정 범위내에서 러너를 같이 공유해서 사용하는 것이다.

Shared Runner는 GitLab 내부에서 모두 공유해서 사용하고, Group Runner는 그룹 내에서만 공유해서 사용한다.

적절한 환경에 따라 세팅하면 될 듯하다.

이 글에서는 Shared Runner로 할 것이다. 이 러너가 잘못되면 이를 사용하는 모든 프로젝트에 문제가 갈 수 있으므로 우려되는 경우 Group Runner로 범위를 제한 시켜서 대체하시기 바라고, 모조리 개인프로젝트인 제 GitLab 특성 상 문제가 없기 때문에 Shared Runner로 진행한다.

본론

GitLab 전체에 영향이 가는 만큼 관리자 계정에서 생성할 수 있다.

  1. Admin을 눌러 관리자 페이지로 이동한다.

image-20221220212830562

  1. Overview -> Runners 메뉴로 이동한다.

image-20221220212913944

  1. 현재 깃랩에 등록된 모든 러너를 관리하는 메뉴가 열리고 우측 상단 Register an instance runner 버튼을 클릭한다.

    image-20221220213106260

    1. 설치된 GitLab Runner로 이동하여 등록을 진행한다. (GitLab Runner 설치에 관해서는 다루지 않는다.)
    sudo gitlab-runner register
    

    위 명령어를 입력하면 대화형으로 러너에 대한 정보를 입력하는 프로그램이 실행된다.

    메시지에 따라 입력해주면 된다.

    Enter the GitLab instance URL (for example, https://gitlab.com/):
    

    GitLab이 구동되고 있는 URL을 입력한다.

    Enter the registration token:
    

    3번 단계에서 토큰을 복사하여 입력한다.

    Enter a description for the runner:
    

    러너에 대한 설명을 입력하면 된다.

    Enter tags for the runner (comma-separated):
    

    러너 태그를 입력한다. 특히나 공유되는 러너이므로 태그를 정해주어 해당 태그를 부여할 경우에만 러너가 사용되도록 정해줘야 한다.

    Enter optional maintenance note for the runner:
    

    메모를 남기는 것인데. 넘겨도 좋다.

    Enter an executor: custom, docker, shell, docker+machine, docker-ssh+machine, docker-ssh, parallels, ssh, virtualbox, kubernetes:
    

    이어서 어떤 환경에서 실행할지 지정해주면 된다. 아무래도 공유하여 사용하는 만큼 docker같이 격리될 환경을 사용해주는 편이 좋다.

    Enter the default Docker image (for example, ruby:2.7):
    

    도커의 경우 위와 같이 기본 이미지를 지정하라고 하는데. 어디까지나 기본이미지이므로 무난한 알파인 리눅스 같은 것을 지정해두면 된다.

    실제 사용 시에는 CI/CD 설정 파일에서 이미지를 지정하면 그 이미지로 실행되므로 문제 없다.

사용은 간단하게 기존 CI/CD 스크립트에서 태그를 위에서 지정한 태그로 설정해주면 된다.