公式のGitLabリポジトリを使用してGitLab Runnerをインストールする
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLab Runnerをインストールするには、GitLabリポジトリのパッケージを使用できます。
サポートされているディストリビューション
GitLabでは、Packagecloudでサポートされている以下のバージョンのLinuxディストリビューションのパッケージを提供しています。新しいOSディストリビューションリリースに対応する新しいRunner debまたはrpmパッケージは、Packagecloudでサポートされている場合、自動的に追加されます。
Debベースのディストリビューション
| ディストリビューション | サポート対象バージョン |
|---|---|
| Debian | 14 Forky、13 Trixie、12 Bookworm、11 Bullseye |
| LinuxMint | 22.1 Xia、22 Wilma、21.3 Virginia、21.2 Victoria、21.1 Vera、21 Vanessa、20.3 Una、20.2 Uma、20.1 Ulyssa、20 Ulyana |
| Raspbian | 14 Forky、13 Trixie、12 Bookworm、11 Bullseye |
| Ubuntu | 24.10 Oracular Oriole、24.04 Lts Noble Numbat、22.04 Jammy Jellyfish、20.04 Focal Fossa、18.04 Lts Bionic Beaver、16.04 Lts Xenial Xerus |
RPMベースのディストリビューション
| ディストリビューション | サポート対象バージョン |
|---|---|
| Amazon Linux | 2025、2023、2022、2 |
| Red Hat Enterprise Linux | 9、8、7 |
| Fedora | 43、42、41、40 |
| Oracle Linux | 9、8、7、6 |
| openSUSE | 16.0、15.6、15.5、15.4、15.3、15.2、15.1、15.0 |
| SUSE Linux Enterprise Server | 15.6、15.5、15.4、15.3、15.2、12.5 |
セットアップによっては、他のDebianまたはRPMベースのディストリビューションもサポートされている場合があります。これは、サポートされているGitLab Runnerディストリビューションからの派生であり、互換性のあるパッケージリポジトリを持つディストリビューションを指します。たとえば、DeepinはDebianの派生ディストリビューションです。そのため、RunnerのdebパッケージはDeepinにインストールして実行できるはずです。他のLinuxディストリビューションでもGitLab Runnerをバイナリとしてインストールできる場合があります。
リストにないディストリビューションのパッケージは、パッケージリポジトリから入手できません。これらは、S3バケットからRPMまたはDEBパッケージをダウンロードして、手動でインストールできます。
GitLab Runnerをインストールする
GitLab Runnerをインストールするには、次の手順に従います:
公式GitLabリポジトリを追加します:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bashcurl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash最新バージョンのGitLab Runnerをインストールするか、次のステップに進んで特定のバージョンをインストールします:
No such file or directoryジョブの失敗を防ぐために、skelディレクトリの使用はデフォルトで無効になっています。sudo apt install gitlab-runnersudo yum install gitlab-runner or sudo dnf install gitlab-runnerRHELディストリビューション向けに、FIPS 140-2準拠バージョンのGitLab Runnerが利用可能です。このバージョンをインストールするには、パッケージ名として
gitlab-runnerの代わりにgitlab-runner-fipsを使用します。特定のバージョンのGitLab Runnerをインストールするには、次のようにします:
gitlab-runnerバージョンv17.7.1の時点では、最新バージョンではない特定のバージョンのgitlab-runnerをインストールする場合、そのバージョンに必要なgitlab-runner-helper-packagesを明示的にインストールする必要があります。この要件は、apt/apt-getの制限により存在しています。apt-cache madison gitlab-runner sudo apt install gitlab-runner=17.7.1-1 gitlab-runner-helper-images=17.7.1-1特定バージョンの
gitlab-runnerをインストールするときに、同じバージョンのgitlab-runner-helper-imagesをインストールしないと、次のようなエラーが発生する可能性があります:sudo apt install gitlab-runner=17.7.1-1 ... The following packages have unmet dependencies: gitlab-runner : Depends: gitlab-runner-helper-images (= 17.7.1-1) but 17.8.3-1 is to be installed E: Unable to correct problems, you have held broken packages.yum list gitlab-runner --showduplicates | sort -r sudo yum install gitlab-runner-17.2.0-1
上記の手順を完了すると、Runnerを起動してプロジェクトで使用できるようになります。
FAQセクションを参照してください。このセクションでは、GitLab Runnerに関する最も一般的な問題について説明しています。
GitLab Runnerをアップグレードする
最新バージョンのGitLab Runnerをインストールするには、次のようにします:
sudo apt update
sudo apt install gitlab-runnersudo yum update
sudo yum install gitlab-runnerPackageインストールのGPG署名
GitLab Runnerプロジェクトは、パッケージインストール方法に対して2種類のGPG署名を提供しています:
リポジトリメタデータの署名
リモートリポジトリからダウンロードしたパッケージ情報が信頼できるものであることを検証するために、パッケージマネージャーはリポジトリメタデータの署名を使用します。
この署名は、apt-get updateなどのコマンドを使用するときに検証されます。このため、パッケージのダウンロードとインストールが行われる前に、利用可能なパッケージに関する情報が更新されます。検証に失敗した場合、パッケージマネージャーはメタデータを拒否します。つまり、署名の不一致の原因となった問題が見つかって解決されるまで、リポジトリからパッケージをダウンロードしてインストールすることはできません。
パッケージメタデータ署名の検証に使用されるGPG公開キーは、上記の手順で最初に行われたインストール時に自動的にインストールされます。今後のキーの更新では、既存のユーザーが新しいキーを手動でダウンロードしてインストールする必要があります。
https://packages.gitlab.comでホストされているすべてのプロジェクトに対して1つのキーを使用します。使用されているキーの詳細は、Linuxパッケージのドキュメントで確認できます。このドキュメントページには、過去に使用されたすべてのキーも記載されています。
パッケージの署名
リポジトリメタデータの署名は、ダウンロードされたバージョン情報がhttps://packages.gitlab.comからのものであることを証明します。パッケージ自体の整合性を証明するものではありません。リポジトリからユーザーへのメタデータ転送が影響を受けていない限り、https://packages.gitlab.comにアップロードされたものはすべて、承認されているかどうかにかかわらず、適切に検証されます。
パッケージ署名では、各パッケージがそのビルド時に署名されます。ビルド環境と使用されているGPGキーの機密性を信頼できるようになるまで、パッケージの信頼性を検証できません。パッケージの有効な署名は、その出所が認証されており、その整合性が侵害されていないことを証明します。
パッケージ署名検証は、Debian/RPMベースのディストリビューションの一部でのみデフォルトで有効になっています。このタイプの検証を使用するには、設定の調整が必要になる場合があります。
https://packages.gitlab.comでホストされているリポジトリごとに、パッケージ署名検証に使用されるGPGキーが異なる場合があります。GitLab Runnerプロジェクトでは、このタイプの署名に独自のキーペアを使用します。
RPMベースのディストリビューション
RPM形式には、GPG署名機能の完全な実装が含まれており、この形式に基づくパッケージ管理システムと完全に統合されています。
Linuxパッケージのドキュメントに、RPMベースのディストリビューションのパッケージ署名検証を設定する方法に関する技術的な説明があります。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からインポートできます。
Debianベースのディストリビューション
deb形式は、公式にはパッケージ署名機能をデフォルトで備えていません。GitLab Runnerプロジェクトでは、パッケージの署名と検証にdpkg-sigツールを使用します。この方法では、パッケージの手動検証のみがサポートされています。
debパッケージを検証するには、次の手順に従います:
dpkg-sigをインストールします:apt update && apt 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.gpgdpkg-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公開キー
https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpgからパッケージ署名に使用される現在の公開GPGキーをダウンロードできます。
| キーの属性 | 値 |
|---|---|
| 名前 | GitLab, Inc. |
| メール | support@gitlab.com |
| フィンガープリント | 931D A69C FA3A FEBB C97D AA8C 6C57 C29C 6BA7 5A4E |
| 有効期限 | 2026-04-28 |
GitLab Runnerプロジェクトは、<https://gitlab-runner-downloads.s3.dualstack.us-east-1.amazonaws.com>バケットで利用可能なS3リリースのrelease.sha256ファイルに署名するために、同じキーを使用します。
過去のGPG公開キー
過去に使用されたキーを以下の表に示します。
失効したキーは、パッケージ署名検証設定から削除することを強くお勧めします。
次のキーによって作成された署名は、信頼すべきではありません。
| シリアル番号 | キーのフィンガープリント | 状態 | 有効期限 | ダウンロード(失効したキーのみ) |
|---|---|---|---|---|
| 1 | 3018 3AC2 C4E2 3A40 9EFB E705 9CE4 5ABC 8807 21D4 | revoked | 2021-06-08 | 失効したキー |
| 2 | 09E5 7083 F34C CA94 D541 BC58 A674 BF81 35DF A027 | revoked | 2023-04-26 | 失効したキー |
トラブルシューティング
GitLab Runnerのインストール時に発生する問題のトラブルシューティングと解決のためのヒントを以下に示します。
エラー: No such file or directoryジョブの失敗
デフォルトのスケルトン(skel)ディレクトリが原因でGitLab Runnerに問題が発生し、ジョブの実行に失敗することがあります。イシュー4449とイシュー1379を参照してください。
これを回避するために、GitLab Runnerをインストールすると、gitlab-runnerユーザーが作成され、デフォルトでは、ホームディレクトリはスケルトンなしで作成されます。skelの使用によってホームディレクトリに追加されるShell設定は、ジョブの実行を妨げる可能性があります。この設定は、前述のような予期しない問題を引き起こす可能性があります。
skelの回避がデフォルトの動作になる前にRunnerを作成していた場合は、次のドットファイルを削除してみてください:
sudo rm /home/gitlab-runner/.profile
sudo rm /home/gitlab-runner/.bashrc
sudo rm /home/gitlab-runner/.bash_logoutskelディレクトリを使用して、新しく作成された$HOMEディレクトリにデータを入力する必要がある場合は、Runnerをインストールする前に、GITLAB_RUNNER_DISABLE_SKEL変数を明示的にfalseに設定する必要があります:
export GITLAB_RUNNER_DISABLE_SKEL=false; sudo -E apt-get install gitlab-runnerexport GITLAB_RUNNER_DISABLE_SKEL=false; sudo -E yum install gitlab-runner