web-dev-qa-db-ja.com

複数のgitlab-ci-runnersを実行するにはどうすればよいですか?

まあ、非常に基本的な質問ですが、(良い)文書が見つかりませんでした。さあ行こう:

  • 同じサーバーで複数のランナーをセットアップ/実行できますか?
  • ランナーってどういう意味?これは(オムニバス)インストールですか、それとも私が開始するプロセスですか? /opt/gitlab-runner/bin/runner
  • /opt/gitlab-runner/bin/runnerについて:そのようなプロセスをいくつか開始することは理にかなっていますか? (これらはgitlab-ci webviewの[Runners]タブの下に個別に表示されません)

ありがとう。

12
h2459jl
  1. はい、複数のランナーを設定できます。詳細は https://docs.gitlab.com/runner/ を参照してください
  2. 通常、ランナーはメインのgitlabインスタンスとは別のボックスに設定します。少なくともそれが私がすることです。 Omnibus GITLABは、リポジトリが維持され、ウェブUIからアクセスできるメインシステムを指します。ランナーは分離されたプロセス(ワーカー)であり、新しいコミットがプッシュされるのを待ってからビルドを実行します。
  3. 特定のテクノロジーに特化した複数のランナーを設定することをお勧めします。例えば。 Java、NodeJS、Python用の専用ランナー、RubyまたはPHPビルド。UIにランナーが表示されない場合、それらはインスタンスに正しく登録されていません。 。#1のドキュメントを参照してください
3

Windowsで複数のgitlab-runnersを実行しようとしている他の人のために:

  • Gitlabrunner.exeを2つの異なる場所にダウンロード/コピーします。
  • それらをeperateフォルダに登録します。
  • それらをインストールし、異なる名前を-nフラグに指定します。例:
gitlab-runner-windows-AMD64.exe install -n dockerbuilder
  • -nフラグで同じ名前を使用してそれらを開始します。
0
Klepto

複数のインスタンスを実行できますが、gitlab 12.2以降、重要な注意事項があります。 https://docs.gitlab.com/runner/faq/README.html#why-cant-i-run-more-than-one- instance-of-runner

Runnerのインスタンスを複数実行できないのはなぜですか?

同じconfig.tomlファイルは共有できますが、共有することはできません。

同じ構成ファイルを使用してRunnerの複数のインスタンスを実行すると、予期しない、デバッグが困難な動作が発生する可能性があります。 GitLab Runner 12.2では、Runnerの単一のインスタンスのみが特定のconfig.tomlファイルを一度に使用できます

0
MateuszL

私は2つの異なる仕事のためにちょうど1人のランナーを必要とするセットアップがありました。並行性を定義すると、特定のマシンのすべてのランナーに並行性が設定されます。

2つのランナー(異なるラベルまたは設定)とconcurrent = 2がある場合、両方が2つのジョブを並行して実行できることを意味します。 concurrent = 1の場合、一度に1つのランナーのみが1つのジョブを実行します。

ここに解決策が見つかりました: https://forum.gitlab.com/t/run-runners-in-parallel-on-the-same-server/9213/2concurrent = 2および各ランナーに対してlimit = 1を追加して、サーバー上に最大2つのジョブを持ち、各ランナーを厳密に1つのジョブで制限します。

0
Priit