GitLab公式リポジトリを使ってGitLab Runnerをインストールします。
私たちはpackagecloudで以下のサポートされているバージョンのLinuxディストリビューション用のパッケージを提供しています。新しいOSディストリビューションリリースのための新しいrunnerdeb
またはrpm
パッケージは、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 |
リナックスミント | https://linuxmint.com/download_all.php |
ラズビアン | |
RHEL | https://access.redhat.com/product-life-cycles?product=Red%20Hat%20Enterprise%20Linux |
オラクル・リナックス | https://endoflife.date/oraclelinux |
Fedora | https://docs.fedoraproject.org/en-US/releases/eol/ |
Amazon Linux | https://aws.amazon.com/linux/ |
前提条件
Docker Executorを使用したい場合は、GitLab Runnerを使用する前に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以降では、GitLab RunnerのFIPS 140-2準拠バージョンがRHELディストリビューションで利用可能です。このバージョンはgitlab-runner
の代わりにgitlab-runner-fips
をパッケージ名として使うことでインストールできます。 -
GitLab Runnerの特定のバージョンをインストールするには:
DEB ベースのシステムの場合:
apt-cache madison gitlab-runner sudo apt-get install gitlab-runner=15.11.0
RPM ベースのシステムの場合:
yum list gitlab-runner --showduplicates | sort -r sudo yum install gitlab-runner-15.11.0-1
-
ランナーを登録します。
上記のステップを完了すると、Runnerが開始され、プロジェクトで使用できるようになります!
GitLab Runnerのよくある問題についてはFAQセクションを読んでください。
APT のピン留め
Debian Stretch ではgitlab-ci-multi-runner
というネイティブパッケージが利用可能です。デフォルトでは、gitlab-runner
をインストールする場合、公式リポジトリからのパッケージの方が優先度が高くなります。
私たちのパッケージを使いたい場合は、手動でパッケージのソースを設定してください。最良の方法は、ピン留め設定ファイルを追加することです。
そうすれば、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プロジェクトはパッケージのインストール方法に2種類のGPG署名を提供しています: リポジトリメタデータ署名とパッケージ署名です。
リポジトリメタデータ署名
リモートリポジトリからダウンロードしたパッケージ情報が信頼できることを確認するために、パッケージマネージャはリポジトリメタデータ署名を使用します。
署名はapt-get update
のようなコマンドを使用する際に検証され、パッケージがダウンロード・インストールされる前に利用可能なパッケージの情報が更新されます。検証に失敗すると、パッケージマネージャはメタデータを拒否します。これは、署名の不一致の原因となった問題が見つかり解決されるま で、リポジトリからパッケージをダウンロード・インストールできないことを意味し ます。
パッケージメタデータの署名検証に使用される GPG 公開鍵は、上記の手順で行われる最初のインストール時に自動的にインストールされます。今後鍵を更新する場合は、既存のユーザーが手動で新しい鍵をダウンロードしてインストールする必要があります。
私たちはhttps://packages.gitlab.com でホストされているすべてのプロジェクトに一つの鍵を使用しています。現在使われているキーの詳細と、必要なときにキーを更新する方法についての技術的な説明は、Linux パッケージのドキュメントにあります。このドキュメンテーションページには、過去に使用されたすべてのキーも掲載されています。
パッケージ署名
リポジトリのメタデータへの署名は、ダウンロードされたバージョン情報がhttps://packages.gitlab.com に由来することを証明します。パッケージ自体のインテグリティを証明するものではありません。作成者であろうとなかろうと、https://packages.gitlab.com にアップロードされたものは、リポジトリからユーザーへのメタデータ転送が影響を受けない限り、適切に検証されます。
ここでパッケージの署名の出番です。
パッケージ署名では、各パッケージはビルドされるときに署名されます。ですから、ビルド環境と使用される GPG 鍵の機密性を信頼できるまで、パッケージの有効な署名は、その出所が認証され、その完全性が侵害されていないことを証明します。
パッケージの署名検証は、一部のDEB/RPMベースのディストリビューションでのみデフォルトで有効になっているので、この種の検証を行いたいユーザーは設定を調整する必要があるかもしれません。
パッケージの署名検証に使用されるGPGキーは、https://packages.gitlab.com でホストされているリポジトリごとに異なる場合があります。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. |
Eメール | support@gitlab.com |
指紋 | 931D A69C FA3A FEBB C97D AA8C 6C57 C29C 6BA7 5A4E |
有効期限 | 2025-04-25 |
<https://gitlab-runner-downloads.s3.amazonaws.com/>
バケットで利用可能なS3リリースのrelease.sha256
ファイルに署名するために使用されます。以前のGPG公開鍵
過去に使用された鍵は以下の表にあります。
失効した鍵については、パッケージ署名検証設定から削除することを強く推奨します。
これらの鍵による署名はもう信用すべきではありません。
Sl.番号 | キー指紋 | ステータス | 有効期限 | ダウンロード(失効した鍵のみ) |
---|---|---|---|---|
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 | 失効キー |
パッケージの手動ダウンロード
必要に応じて、手動でパッケージをダウンロードしてインストールすることができます。
無効化skel
- GitLab Runner 12.10で導入されました。
- デフォルトで
true
に設定 GitLab Runner 14.0.
時々、デフォルトのスケルトン (skel
) ディレクトリ がGitLab Runner のイシューを引き起こし、ジョブの実行に失敗することがあります。
GitLab Runner 12.10 では、特別な変数 -GITLAB_RUNNER_DISABLE_SKEL
- のサポートを追加しました。true
に設定すると、新しく作成されたユーザーの$HOME
ディレクトリを作成する際にskel
が使用されないようになります。
GitLab Runner 14.0 からGITLAB_RUNNER_DISABLE_SKEL
はデフォルトでtrue
に設定されています。
何らかの理由で、skel
ディレクトリが新しく作成された$HOME
ディレクトリへの入力に使用される必要がある場合、パッケージインストール前にGITLAB_RUNNER_DISABLE_SKEL
変数をfalse
に明示的に設定する必要があります。例えば
Debian/Ubuntu/Mint 用:
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
ディレクトリに追加された Shell 設定はジョブの実行を妨害し、上記のような予期せぬ問題を引き起こす可能性があります。