プロジェクトの継続的インテグレーション(CI)サービスをセットアップしたいと考えています。そのCIサービスは、デプロイメントを含むプロジェクトライフのすべての側面を制御する必要があります。
つまり、各反復でCIエージェントがクリーンなシステム(特にUbuntuサーバー)を取得し、そこにプロジェクトをデプロイしてテストを実行する必要があります。
私たちのエコシステムはかなり珍しいので、CIサービスを最初から自分で作成します。問題は、CIの反復ごとにクリーンなスレートシステムを効果的に提供する方法ですか。
プロジェクトの展開では、いくつかのDebianパッケージをインストールし、いくつかのnginxサイトを構成し、いくつかのパッケージをシステム全体の実装言語固有のパッケージマネージャー(LuaRocks)にインストールします。それ以上に邪魔になるものはありません(私は信じています)。したがって、完全な分離とクリーンを確保するよりも、クリーンスレートをすばやく(最新のハードウェアでは1分以内に、より速く、より良く)セットアップできることが重要です。
私たちが必要とすることを行う方法は2つあります。
- いずれかの種類の刑務所(lxcなど)をセットアップします。
- または、スナップショットを実行できる仮想マシンをインストールして使用します。
しかし、現時点では決定するのに十分な情報がありません。
何をアドバイスしますか?他のオプションはありますか?特定のツール名はありますか?
注:CIサービスは、Citrix XenServerゲスト内で実行されます。価格がリーズナブルであれば、有料のソリューションで問題ありません。(通常、この分野では妥当ではありません。)リモートCIソリューションは適切ではありません。