私は次の設定をしています:
- 個別の git リポジトリである多くの異なるプロジェクトですが、すべてのサーバー構成はほとんど同じです。
- 各プロジェクトは、他の多くのプロジェクトに依存しており、composer 依存関係マネージャーを使用してそれらをまとめます (ここでは PHP 言語)。
Vagrant を使用し、各リポジトリに Vagrant ファイルを含めたいので、チーム メンバーはリポジトリを複製して実行vagrant up
し、準備を整えることができます。
私の質問は現在、プロビジョニングに向けられています。apache、git、mysql、いくつかの php パッケージなどのいくつかのツールとパッケージをインストールしてから、いくつかのファイル (最近の開発用の db ダンプなど) をダウンロードし、すべてを /var/www にセットアップして、composer install コマンドを実行する必要があります。
したがって、これを行うための 1 つのオプションは、シェフやパペットなどのレシピを使用するマネージャーを使用することです。別の方法として、bash ファイルを作成し、シェル プロビジョニングを使用することもできます。
私はシェフ/パペットの経験があまりないので、当然、シェルオプションを使用する方が簡単に思えますが、これが長期的には良い/実行可能なオプションではないかどうかを理解したい.
パペット/シェフと一緒に行くのは悪いアプローチだと思うのはなぜですか:
いくつかの異なるレシピを使用する必要があり、ほとんどの場合、異なるリポジトリに同じレシピを使用することを理解しています。そのため、すべてのリポジトリにそれらすべてを含める必要があります。20 個のリポジトリがあり、10 個のレシピが必要であることを検討してください。つまり、200 個のレシピを git-submodule などとして追加する必要があります (また、各チーム メンバーは、リポジトリを複製し、次に 10 個のレシピ リポジトリを複製し、それぞれに対して vagrant を実行する必要があります)。事業)。対照的に、シェル スクリプトを含む小さなリポジトリを作成し、それを 20 回複製するだけで済みます。
おそらく何かが足りないので、chef/puppet を選択する必要があるかどうか、およびリポジトリのすべてのサーバー設定が非常に似ている場合でもそれが理にかなっている理由を教えてください。