正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

公式の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ベースのディストリビューション

ディストリビューションサポート対象バージョン
Debian14 Forky、13 Trixie、12 Bookworm、11 Bullseye
LinuxMint22.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
Raspbian14 Forky、13 Trixie、12 Bookworm、11 Bullseye
Ubuntu24.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 Linux2025、2023、2022、2
Red Hat Enterprise Linux9、8、7
Fedora43、42、41、40
Oracle Linux9、8、7、6
openSUSE16.0、15.6、15.5、15.4、15.3、15.2、15.1、15.0
SUSE Linux Enterprise Server15.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をインストールするには、次の手順に従います:

  1. 公式GitLabリポジトリを追加します:

    curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
    curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
  2. 最新バージョンのGitLab Runnerをインストールするか、次のステップに進んで特定のバージョンをインストールします:

    No such file or directoryジョブの失敗を防ぐために、skelディレクトリの使用はデフォルトで無効になっています。

    sudo apt install gitlab-runner
    sudo yum install gitlab-runner
    
    or
    
    sudo dnf install gitlab-runner

    RHELディストリビューション向けに、FIPS 140-2準拠バージョンのGitLab Runnerが利用可能です。このバージョンをインストールするには、パッケージ名としてgitlab-runnerの代わりにgitlab-runner-fipsを使用します。

  3. 特定のバージョンの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
  4. Runnerを登録します

上記の手順を完了すると、Runnerを起動してプロジェクトで使用できるようになります。

FAQセクションを参照してください。このセクションでは、GitLab Runnerに関する最も一般的な問題について説明しています。

GitLab Runnerをアップグレードする

最新バージョンのGitLab Runnerをインストールするには、次のようにします:

sudo apt update
sudo apt install gitlab-runner
sudo yum update
sudo yum install gitlab-runner

Packageインストールの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パッケージを検証するには、次の手順に従います:

  1. dpkg-sigをインストールします:

    apt update && apt install dpkg-sig
  2. パッケージ署名公開キーをダウンロードしてインポートします:

    curl -JLO "https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg"
    gpg --import runner-gitlab-runner-49F16C5CC3A0F81F.pub.gpg
  3. 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公開キー

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公開キー

過去に使用されたキーを以下の表に示します。

失効したキーは、パッケージ署名検証設定から削除することを強くお勧めします。

次のキーによって作成された署名は、信頼すべきではありません。

シリアル番号キーのフィンガープリント状態有効期限ダウンロード(失効したキーのみ)
13018 3AC2 C4E2 3A40 9EFB E705 9CE4 5ABC 8807 21D4revoked2021-06-08失効したキー
209E5 7083 F34C CA94 D541 BC58 A674 BF81 35DF A027revoked2023-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_logout

skelディレクトリを使用して、新しく作成された$HOMEディレクトリにデータを入力する必要がある場合は、Runnerをインストールする前に、GITLAB_RUNNER_DISABLE_SKEL変数を明示的にfalseに設定する必要があります:

export GITLAB_RUNNER_DISABLE_SKEL=false; sudo -E apt-get install gitlab-runner
export GITLAB_RUNNER_DISABLE_SKEL=false; sudo -E yum install gitlab-runner