0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitLab Runnerのインストール

Posted at

GitLab Runnerのインストール

(トップページはこちら) - (GitLab Runnerを始める)

CI/CDパイプラインを構築する際、「どこでジョブを実行するか」は重要な選択です。GitLab Runnerは、この問いに対する柔軟な答えを提供します。単一のバイナリファイルとして動作し、Linux、Windows、macOS、さらにはメインフレームまで、ほぼすべての環境で実行可能です。本記事では、あなたの環境に最適なインストール方法を見つけるための情報を提供します。

対応環境: GitLab.com、GitLab Self-Managed、GitLab Dedicated
利用可能プラン: Free、Premium、Ultimate

1. まず理解すべきこと - GitLab Runnerの設計思想

GitLab Runnerは、GitLabで定義されたCI/CDジョブを実際に実行するエージェントです。重要なのは、GitLabインスタンスとは別のマシンにインストールするという原則です。

これには明確な理由があります。CI/CDジョブは、ビルド、テスト、デプロイといった重い処理を実行します。これらをGitLabサーバーと同じマシンで実行すると、リソースの競合が発生し、GitLab全体のパフォーマンスが低下します。分離することで、セキュリティとパフォーマンスの両面でメリットが得られます。

2. あなたの環境はどれ? - インストール方法の選択

まず、あなたの環境に応じたインストール方法を確認しましょう。

3. コンテナ環境でのインストール

モダンなインフラストラクチャを使用している場合、コンテナベースのインストールが最適です。

3.1. Docker - 最速で始める

Dockerを使用する場合、数分でGitLab Runnerを起動できます。開発環境や小規模なプロジェクトに最適です。

適している場合:

  • 単一ホストでRunnerを実行したい
  • 迅速にセットアップしたい
  • Docker環境がすでに整っている

3.2. Kubernetes環境 - スケーラブルな運用

Kubernetesクラスタで運用する場合、3つの選択肢があります。

Helm Chart: 設定をYAMLファイルで管理し、バージョン管理が容易です。Kubernetesに慣れているチームに最適です。

GitLab Agent for Kubernetes: GitLabとKubernetesクラスタ間の接続をセキュアに保ちます。プルベースのアーキテクチャにより、クラスタへの直接アクセスが不要です。

GitLab Operator: Kubernetes Operatorパターンを使用し、GitLab Runnerのライフサイクルを完全に自動化します。大規模環境や複数クラスタを管理する場合に有効です。

4. OS直接インストール

コンテナを使用しない場合、各OSに応じたインストール方法があります。

4.1. Linux - 2つのアプローチ

GitLabリポジトリからのインストール:

  • パッケージマネージャー(apt、yum、dnfなど)を使用
  • 自動更新が可能
  • 推奨される方法

手動インストール:

  • バイナリを直接ダウンロード
  • カスタマイズが必要な環境向け
  • 特殊な要件がある場合に選択

4.2. その他のOS

  • FreeBSD: BSD系UNIXでの運用。安定性を重視する環境に
  • macOS: ローカル開発環境やiOS/macOSアプリのビルドに
  • Windows: Windows環境でのビルドやテストに必須
  • z/OS: メインフレーム環境でのCI/CD実行

4.3. Bleeding-edgeバイナリ

最新の開発版を試したい場合、Bleeding-edgeバイナリが利用できます。新機能をいち早く検証できますが、本番環境での使用は推奨されません。

また、上記以外のOSでも、Goバイナリをコンパイルできる環境であれば動作します。

5. サポートされているアーキテクチャ

GitLab Runnerは、以下のCPUアーキテクチャに対応しています。

アーキテクチャ 用途例
x86 レガシーシステム
AMD64 一般的なサーバー、デスクトップ
ARM64 Apple Silicon、AWS Graviton、最新サーバー
ARM Raspberry Pi、組み込みデバイス
s390x IBM System zメインフレーム
ppc64le IBM POWERプロセッサ
riscv64 RISC-V搭載デバイス
loong64 LoongArchプロセッサ

この幅広い対応により、エッジコンピューティングからエンタープライズメインフレームまで、一貫したCI/CD環境を構築できます。

6. システム要件 - 何を考慮すべきか

GitLab Runnerのシステム要件は、「最低限これだけ必要」という固定値ではありません。以下の要素を総合的に判断する必要があります。

6.1. 負荷を決定する5つの要素

6.2. 実践的な考え方

小規模プロジェクト(開発者1-5人):

  • 2-4 CPU、4-8GB RAM程度から開始
  • 同時実行ジョブ数を2-3に制限

中規模プロジェクト(開発者10-30人):

  • 4-8 CPU、16-32GB RAM
  • 同時実行ジョブ数を5-10に設定
  • 複数Runnerの分散配置を検討

大規模プロジェクト(開発者30人以上):

  • Kubernetes環境での動的スケーリング
  • 専用のRunner群を用途別に分離
  • モニタリングとオートスケーリングの導入

6.3. GitLab.comホストランナー

GitLab.comを使用している場合、自前でRunnerを用意せず、GitLabが提供するホストランナーを利用できます。さまざまなマシンタイプが用意されており、プロジェクトの要件に応じて選択可能です。

7. FIPS準拠環境での運用

政府機関や金融機関など、厳格なセキュリティ基準が求められる環境では、FIPS 140-2準拠が必要になります。

7.1. 現在の対応状況

対応環境:

  • OS: Red Hat Enterprise Linux (RHEL)
  • アーキテクチャ: AMD64

技術的背景:

  • Red Hat Goコンパイラでビルド
  • FIPS 140-2検証済み暗号化ライブラリを使用
  • ベースイメージ: UBI-8 minimal image

7.2. 導入時の注意点

FIPS準拠のGitLab Runnerを使用する場合、RHEL自体をFIPSモードに切り替える必要があります。これはシステム全体に影響を与えるため、事前に十分な検証が必要です。

7.3. 今後の展開

他のディストリビューション(Ubuntu、Debianなど)やアーキテクチャ(ARM64など)への対応は、コミュニティで議論されています(issue 28814)。セキュリティ要件とプラットフォームの両立が必要な場合は、このissueをウォッチすることをお勧めします。

8. 実際の選択例

具体的なシナリオに基づいた選択例を示します。

8.1. スタートアップ企業(開発者5人、Webアプリケーション)

選択: Docker + Linux(Ubuntu)
理由:

  • 迅速なセットアップが可能
  • インフラコストを抑えられる
  • 将来的にKubernetesへの移行も容易

8.2. 中規模SaaS企業(開発者30人、マイクロサービス)

選択: Kubernetes + Helm Chart
理由:

  • 複数サービスの並列ビルドに対応
  • 宣言的な設定管理でインフラをコード化
  • スケーラビリティの確保

8.3. 金融機関(開発者100人、FIPS準拠必須)

選択: RHEL + FIPS準拠バイナリ + Kubernetes
理由:

  • セキュリティ要件を満たす
  • 大規模チームの並列作業に対応
  • エンタープライズサポートの利用

8.4. iOS/macOSアプリ開発チーム

選択: macOS + 手動インストール
理由:

  • Xcode環境が必須
  • Apple Silicon(ARM64)対応
  • ローカルビルドとCI環境の統一

9. インストール後の次のステップ

GitLab Runnerのインストールは、CI/CD環境構築の第一歩に過ぎません。実際の運用では、以下の設定が必要になります。

  1. Runnerの登録: GitLabインスタンスにRunnerを登録
  2. Executorの選択: Shell、Docker、Kubernetesなど、ジョブの実行方法を決定
  3. タグの設定: 特定のジョブを特定のRunnerで実行するための識別子
  4. 同時実行数の調整: concurrentパラメータでリソース使用を制御
  5. キャッシュの設定: ビルド時間短縮のための依存関係キャッシュ

これらの設定により、効率的なCI/CDパイプラインが完成します。

10. まとめ - 柔軟性こそがGitLab Runnerの本質

GitLab Runnerの最大の特徴は、その環境非依存性です。8つのCPUアーキテクチャ、5つのOS、4つのコンテナプラットフォームに対応し、さらにFIPS準拠環境まで網羅しています。

この柔軟性により、以下が実現できます。

  • 段階的な移行: 小規模から始めて、成長に応じてスケール
  • ハイブリッド環境: オンプレミスとクラウドの併用
  • 特殊要件への対応: メインフレームやセキュリティ準拠環境
  • コスト最適化: 既存インフラの有効活用

あなたのプロジェクトの規模、セキュリティ要件、インフラ環境に応じて、最適なインストール方法を選択してください。GitLab Runnerは、その選択肢の広さで、あらゆるニーズに応えます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?