実行するSW要件をいくつか持っているプロジェクトがある(例:特定のバージョンのApache、PHPのバージョン、MySQLデータベースのインスタンス、および他のいくつかのソフトウェア)。
すでに Vagrant を発見しているので、仮想環境はすべてセットアップされています。設定ファイルとクックブックからボックスを作成できます。
また、 Jenkins などの継続的インテグレーションシステムの利点も理解しています。
次に、これら2つの世界(VagrantとJenkins)を組み合わせて、完全な継続的統合環境を取得します。具体的には、プロジェクトに必要なSWをJenkinsを実行しているマシンにインストールしたくないが、Vagrantが提供する仮想環境を使用して、プロジェクトをその上に定期的にビルドしたい。 CIソフトウェア(Jenkins)は、Vagrantボックスをビルドし、その上でプロジェクトをビルドおよびテストします。
これを実現するために、どのように環境をセットアップしますか?
それはビルドシステムのための良いソリューションです、私の提案:
おそらく veewee を見ることができます。これにより、オンザフライで浮浪者ボックスを作成できます。
Jenkins CIとVagrantでCIを簡単にする この提案のガイドラインです。
現在、Jenkins CD 1.532.3をサポートしている Venrant Plugin for Jenkins を試すことができます。
http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html で実行されているこのプラグインのデモを見ることができます
個人的には、Hashicorp Packerを使用して開発者向けのVagrantボックスを作成し、それを使用して、CIシステムで実行できるDockerまたはAWSまたはOpenStackイメージを出力することをお勧めします。 Vagrantは素晴らしいツールですが、VMのオーバーヘッドは、特に高速のフィードバックが必要な場合、CIシステムが絶えず上下させるために少し高くなる可能性があります。
以前のクライアントでは、基本的にシステムでVagrantマシンを一度起動し、それらのVM内でDocker/virtualenvビルドを実行し、メジャーアップグレードまたは環境が正しく動作しないという問題が発生したときに定期的にそれらを破棄しました。