1. ホーム
  2. continuous-integration

[解決済み] VagrantとJenkinsを組み合わせて完璧な継続的インテグレーション環境を作るには?

2023-05-02 16:32:18

質問

あなたは、実行するためにいくつかの SW の要件を持っているプロジェクトを持っています (たとえば、特定のバージョンの Apache、PHP のバージョン、MySQL データベースのインスタンス、および他のソフトウェアのいくつかの部分)。

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

のような継続的インテグレーションシステムの利点も理解されたことでしょう。 Jenkins .

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

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

どのように解決するのですか?

ビルドシステムのための良い解決策だと思います。

  1. 現在のjenkinsがマスターCIとして動作している(おそらくユーザーjenkinsによって起動されている)。
  2. 同じマシンまたは別のマシンで別のユーザーを作成し、jenkinsのスレーブモードとして動作させます。
    • jenkins スレーブは jenkins マスターから呼び出すことができ、vagrant のように権限と環境を持った別のユーザーを使うことができるので、元の jenkins マスターサーバーに干渉することはないでしょう。
    • ベースとなるvagrant boxを作成し、デプロイのスピードアップのために再利用することができます。
  3. ほとんどのインストール情報(パッケージ)は、puppet(またはchef)で管理し、vm boxにロードすることができます。
  4. おそらく、以下のサイトを参考にするとよいでしょう。 ヴィー を見てみてください。

    以下は Jenkins CIとVagrantでCIを楽にする を参考に、この提案のためのガイドラインを作成しました。