私は継続的統合サーバーに比較的慣れていません。しばらくの間、プロジェクトを管理するために GitLab (v6.5) を使用してきましたが、GitLab CI を使用して、テストが成功し、ビルドが成功することを確認したいと考えています。
私のテスト セットアップは 2 つの仮想マシンで構成されています。1 つは GitLab 用のマシン、もう 1 つは GitLab CI (およびランナー) 用のマシンです。ただし、本番環境では、GitLab を実行しているマシンが 1 台しかありません。GitLab チームは、しばらく前に興味深いブログ投稿を投稿し、次のことを強調しました。
CI サーバーでテストを実行している場合は、間違っています。
とても有益な投稿でしたが、この特定のポイントを理解したような気がしませんでした. これは、GitLab と GitLab CI を同じサーバーで実行してはならないということですか? GitLab CI と GitLab CI ランナーを同じサーバーで実行してはならないということですか? それとも両方... タスクごとに 1 台ずつ、合計 3 台のサーバーが必要ですか?
同じ投稿から:
CI サーバーでテストされたブランチにプッシュできる人なら誰でも、そのサーバーを簡単に所有できます。
これは、ランナーがコミットに含まれるものを実行できるため、ランナーがセキュリティリスクであることを意味します。その場合、典型的な実装は何ですか? GitLab と GitLab CI を同じマシンに配置しますが、ランナーは別のマシンに配置しますか? ランナー マシンが侵害された場合、それはまだひどいことではないでしょうか? では、コード マシンが安全である限り、ランナ マシンを失っても大丈夫なのでしょうか?
本番環境に実装する前に、これをもう少し理解したいと思います。GitLab、GitLab CI、および GitLab CI ランナーをすべて同じマシンに実装する安全な方法はありますか?