공식 GitLab 리포지터리를 사용하여 GitLab Runner 설치하기
다음 지원되는 Linux 배포 버전에 대한 공식 packagecloud를 통해 패키지를 제공합니다. 새로운 runner deb
또는 rpm
패키지는 새로운 OS 배포 릴리스가 packagecloud에서 지원될 때 자동으로 추가됩니다.
설정에 따라 다른 deb
또는 rpm
기반 배포도 지원될 수 있습니다. 이는 지원되는 GitLab Runner 배포의 파생이며 호환되는 패키지 리포지터리가 있는 배포를 의미합니다. 예를 들어 Deepin은 Debian 파생이므로 runner Debian 패키지가 Deepin에서 설치되고 실행될 수 있습니다. 또한 바이너리 파일로 GitLab Runner를 설치할 수도 있습니다.
다른 Linux 배포에서도 가능합니다.
배포 | 지원 정보 |
---|---|
Debian | https://wiki.debian.org/LTS |
Ubuntu | https://wiki.ubuntu.com/Releases |
LinuxMint | https://linuxmint.com/download_all.php |
Raspbian | |
RHEL | https://access.redhat.com/product-life-cycles?product=Red%20Hat%20Enterprise%20Linux |
Oracle Linux | https://endoflife.date/oracle-linux |
Fedora | https://docs.fedoraproject.org/en-US/releases/eol/ |
Amazon Linux | https://aws.amazon.com/linux/ |
전제 조건
Docker executor를 사용하려면 가장 먼저 해당 배포에 Docker를 설치해야 합니다. 배포에 따라 배포용 Docker 설치 방법을 확인하세요.
GitLab Runner 설치
GitLab Runner를 설치하려면:
-
공식 GitLab 리포지터리를 추가하세요:
Debian/Ubuntu/Mint의 경우:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
RHEL/CentOS/Fedora의 경우:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
Debian 사용자는 APT pinning을 사용해야 합니다. -
GitLab Runner의 최신 버전을 설치하거나 특정 버전을 설치하려면 다음 단계로 건너뛰세요:
Debian/Ubuntu/Mint의 경우:
sudo apt-get install gitlab-runner
RHEL/CentOS/Fedora의 경우:
sudo yum install gitlab-runner
GitLab 14.7 이상에서는 RHEL 배포용으로 FIPS 140-2 호환 버전의 GitLab Runner도 제공됩니다.gitlab-runner
대신gitlab-runner-fips
를 패키지 이름으로 사용하여 이 버전을 설치할 수 있습니다. -
특정 버전의 GitLab Runner를 설치하려면:
DEB 기반 시스템의 경우:
apt-cache madison gitlab-runner sudo apt-get install gitlab-runner=16.5.0
RPM 기반 시스템의 경우:
yum list gitlab-runner --showduplicates | sort -r sudo yum install gitlab-runner-16.5.0-1
-
Runner를 등록하세요.
위 단계를 완료하면 Runner가 시작되어 프로젝트에서 사용할 준비가 된 상태입니다!
반드시 GitLab Runner에 대한 가장 흔한 문제를 설명하는 FAQ 섹션을 읽으세요.
APT pinning
Debian Stretch에는 gitlab-ci-multi-runner
라는 네이티브 패키지가 있습니다. 기본적으로 gitlab-runner
를 설치하면 공식 리포지터리의 해당 패키지가 우선권이 있습니다.
만약 저희 패키지를 사용하고 싶다면, 패키지의 출처를 매뉴얼으로 설정해야 합니다. 가장 좋은 방법은 pinning 구성 파일을 추가하는 것입니다.
이렇게 하면 이후 GitLab Runner 패키지의 업데이트는 매뉴얼 또는 자동으로 수행되더라도 동일한 출처를 사용합니다:
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-gitlab-runner.pref
Explanation: Prefer GitLab provided packages over the Debian native ones
Package: gitlab-runner
Pin: origin packages.gitlab.com
Pin-Priority: 1001
EOF
GitLab Runner 업데이트
가장 최신 버전을 설치하려면 간단히 실행하세요:
Debian/Ubuntu/Mint의 경우:
sudo apt-get update
sudo apt-get install gitlab-runner
RHEL/CentOS/Fedora의 경우:
sudo yum update
sudo yum install gitlab-runner
패키지 설치용 GPG 서명
설치된 소프트웨어에 대한 사용자 신뢰도를 높이기 위해, GitLab Runner 프로젝트에서 패키지 설치 방법에 대해 두 가지 유형의 GPG 서명을 제공합니다: 리포지터리 메타데이터 서명 및 패키지 서명.
리포지터리 메타데이터 서명
원격 리포지터리로부터 다운로드한 패키지 정보를 신뢰할 수 있는지 확인하기 위해 패키지 관리자는 리포지터리 메타데이터 서명을 사용합니다.
이 서명은 apt-get update
와 같은 명령을 사용할 때 확인되므로 사용할 수 있는 패키지 정보가 다운로드하고 설치하기 전에 업데이트됩니다. 검증에 실패하면 패키지 관리자가 메타데이터를 거부해야 합니다. 이는 문제가 된 서명 불일치가 발견되고 해결될 때까지 리포지터리에서 어떤 패키지도 다운로드하고 설치할 수 없음을 의미합니다.
패키지 메타데이터 서명 확인에 사용되는 GPG 공개 키는 위의 설명에서도 사용하는 https://packages.gitlab.com에 호스팅된 모든 프로젝트에 대해 공통으로 사용됩니다. 현재 사용 중인 키에 대한 세부 정보와 필요할 경우 키를 업데이트하는 기술적 설명은 리눅스 패키지 설명서에서 확인할 수 있습니다. 이 문서 페이지는 또한 과거에 사용된 모든 키도 나열합니다.
패키지 서명
리포지터리 메타데이터 서명은 다운로드된 버전 정보가 https://packages.gitlab.com에서 시작되었음을 증명합니다. 이는 패키지 자체의 무결성을 증명하는 것은 아닙니다. https://packages.gitlab.com에 업로드된 내용이 승인되었는지 여부에 관계없이 메타데이터 전송이 사용자에게 영향을 미치지 않은 한 적절히 확인됩니다.
여기서 패키지 서명이 등장합니다.
패키지 서명을 사용하면 각 패키지가 빌드될 때 서명됩니다. 따라서 빌드 환경과 사용된 GPG 키의 기밀성을 신뢰할 수 있을 때까지 패키지의 유효한 서명은 해당 패키지의 출처가 인증되었고 무결성이 훼손되지 않았음을 증명할 것입니다.
패키지 서명 확인은 기본적으로 DEB/RPM 기반 배포판 중 일부에서만 기본적으로 활성화되어 있으므로 이러한 종류의 확인을 원하는 사용자는 구성을 조정해야 할 수 있습니다.
https://packages.gitlab.com에 호스팅된 각 리포지터리에 대해 사용되는 패키지 서명 확인에 사용되는 GPG 키는 다를 수 있습니다. GitLab Runner 프로젝트는 이 유형의 서명에 자체 키 쌍을 사용합니다.
RPM 기반 배포판
RPM 형식에는 GPG 서명 기능의 완벽한 구현이 포함되어 있으므로 해당 형식을 기반으로 한 패키지 관리 시스템과 완전히 통합되어 있습니다.
RPM 기반 배포판에서 패키지 서명 확인을 구성하는 기술적 설명은 Linux 패키지 문서에서 찾을 수 있습니다. GitLab Runner의 차이점은 다음과 같습니다:
-
설치해야 하는 공개 키 패키지의 이름은
gpg-pubkey-35dfa027-60ba0235
입니다. -
안정 버전의 경우 RPM 기반 배포판용 리포지터리 파일은
/etc/yum.repos.d/runner_gitlab-runner.repo
로 이름이 지정될 것이고, (불안정한 버전의 경우)/etc/yum.repos.d/runner_unstable.repo
로 이름이 지정될 것입니다. -
패키지 서명 공개 키는 https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg에서 가져올 수 있습니다.
DEB 기반 배포판
DEB 형식에는 기본적이고 포함된 패키지 서명 방법이 공식적으로 포함되어 있지 않습니다. GitLab Runner 프로젝트는 패키지에 서명하고 서명을 확인하기 위해 dpkg-sig
도구를 사용합니다. 이 방법은 패키지의 매뉴얼 확인만을 지원합니다.
-
dpkg-sig
설치apt-get update && apt-get install dpkg-sig
-
패키지 서명 공개 키를 다운로드하고 가져오기
curl -JLO "https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg" gpg --import runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg
-
dpkg-sig
를 사용하여 다운로드한 패키지 확인dpkg-sig --verify gitlab-runner_amd64.deb Processing gitlab-runner_amd64.deb... GOODSIG _gpgbuilder 931DA69CFA3AFEBBC97DAA8C6C57C29C6BA75A4E 1623755049
부적합한 서명이나 (예: 취소된 서명)으로 서명된 패키지 확인은 다음과 유사한 출력을 생성할 것입니다:
dpkg-sig --verify gitlab-runner_amd64.deb Processing gitlab-runner_amd64.deb... BADSIG _gpgbuilder
사용자의 키링에 키가 없는 경우 출력은 다음과 유사할 것입니다:
dpkg-sig --verify gitlab-runner_amd64.v13.1.0.deb Processing gitlab-runner_amd64.v13.1.0.deb... UNKNOWNSIG _gpgbuilder 880721D4
현재 GPG 공개 키
패키지 서명에 사용되는 현재의 공개 GPG 키를 https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg에서 다운로드할 수 있습니다.
키 속성 | 값 |
---|---|
이름 | GitLab, Inc.
|
이메일 | support@gitlab.com
|
지문 | 931D A69C FA3A FEBB C97D AA8C 6C57 C29C 6BA7 5A4E
|
만료 날짜 | 2025-04-25
|
release.sha256
파일에 서명하기 위해 사용됩니다.이전 GPG 공개 키
과거에 사용된 키는 아래 표에서 찾을 수 있습니다.
폐지된 키에 대해서는 패키지 서명 확인 구성에서 제거하는 것이 매우 권장됩니다.
이러한 키로 생성된 서명은 더 이상 신뢰되어서는 안 됩니다.
일련 번호 | 키 지문 | 상태 | 만료 날짜 | 다운로드 (폐지된 키만) |
---|---|---|---|---|
1 | 3018 3AC2 C4E2 3A40 9EFB E705 9CE4 5ABC 8807 21D4
| 폐지됨
| 2021-06-08
| 폐지된 키 |
2 | 09E5 7083 F34C CA94 D541 BC58 A674 BF81 35DF A027
| 폐지됨
| 2023-04-26
| 폐지된 키 |
패키지 매뉴얼 다운로드
필요한 경우 패키지를 매뉴얼으로 다운로드하고 설치할 수 있습니다.
skel
비활성화
가끔 기본 스켈레톤(skel
) 디렉터리가 GitLab Runner에 문제를 일으키고 작업을 실행하지 못하는 경우가 있습니다.
GitLab Runner 12.10에서는 새로운 사용자의 $HOME
디렉터리를 생성할 때 GITLAB_RUNNER_DISABLE_SKEL
이라는 특별한 변수를 지원하며, true
로 설정되면 skel
의 사용을 방지합니다.
GitLab Runner 14.0부터는 GITLAB_RUNNER_DISABLE_SKEL
이 기본적으로 true
로 설정됩니다.
모든 이유로 인해 skel
디렉터리를 사용하여 새로 생성된 $HOME
디렉터리를 채우는 것이 필요한 경우 패키지 설치 전에 GITLAB_RUNNER_DISABLE_SKEL
변수를 명시적으로 false
로 설정해야 합니다. 예를 들어:
데비안/Ubuntu/민트:
export GITLAB_RUNNER_DISABLE_SKEL=false; sudo -E apt-get install gitlab-runner
RHEL/CentOS/Fedora:
export GITLAB_RUNNER_DISABLE_SKEL=false; sudo -E yum install gitlab-runner
skel
을 사용하여 생성된 $HOME
디렉터리에 추가된 쉘 구성은 작업 실행에 방해가 될 수 있으며 위에서 언급된 문제와 같은 예기치 않은 문제를 발생시킬 수 있습니다.