86

実行するSW要件がいくつかあるプロジェクトがあります(たとえば、Apacheの特定のバージョン、PHPのバージョン、MySQLデータベースのインスタンス、およびその他のいくつかのソフトウェア)。

すでにVagrantを発見しているので、仮想環境はすべてセットアップされています。構成ファイルとクックブックからボックスを作成できます。

また、 Jenkinsなどの継続的インテグレーションシステムの利点についても理解しました。

次に、これら2つの世界(VagrantとJenkins)を組み合わせて、完全な継続的インテグレーション環境を実現します。具体的には、プロジェクトに必要なSWをJenkinsを実行しているマシンにインストールしないで、Vagrantが提供する仮想環境を使用して、その上にプロジェクトを定期的にビルドしたいとします。CIソフトウェア(Jenkins)は、Vagrantボックスをビルドし、その上にプロジェクトをビルドしてテストします。

これを実現するために、環境をどのように設定しますか?

4

3 に答える 3

36

それはビルドシステムのための良い解決策です、私の提案:

  1. 現在のジェンキンスはマスターCIとして機能します(おそらくユーザージェンキンスによって開始されます)
  2. 同じマシンまたは別のマシンに別のユーザーを作成して、jenkinsスレーブモードとして機能させる
    • jenkinsスレーブはjenkinsマスターから呼び出すことができ、vagrantの権限と環境を持っているvagrantのような別のユーザーを使用できるため、元のjenkinsマスターサーバーに干渉することはありません。
    • 基本のvagrantボックスを作成すると、それを再利用して展開をスピードアップできます
  3. ほとんどのインストール情報(パッケージ)は、パペット(またはシェフ)が管理して、vmボックスにロードすることができます。

おそらく、その場でVagrantBoxを作成できるveeweeを見ることができます。

この提案のガイドラインとして、JenkinsCIとVagrantを使用してCIを簡単に作成します。

于 2011-10-20T01:31:03.787 に答える
12

現在JenkinsCD1.532.3をサポートしているJenkins用のVagrantプラグインを試すことができます

このプラグインのデモはhttp://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.htmlで実行されています。

于 2012-04-09T19:00:34.100 に答える
1

個人的には、Hashicorp Packerを使用して開発者向けのVagrantボックスを構築し、それを使用して、CIシステムで実行できるDocker、AWS、またはOpenStackイメージを出力することをお勧めします。Vagrantは素晴らしいツールですが、特に高速なフィードバックが必要な場合は、CIシステムがVMを絶えず上下に回転させるために、VMのオーバーヘッドが少し高くなる可能性があります。

以前のクライアントでは、基本的にVagrantマシンをシステムで一度起動し、それらのVM内でDocker / virtualenvビルドを実行し、メジャーアップグレードや環境の正常な動作に問題が発生したときに、定期的にそれらを破棄しました。

https://www.packer.io/docs/builders/openstack.html

于 2016-12-21T18:13:17.253 に答える