完全に意見形式の質問なので、私の意見に基づいて回答します。彼らの多くは私よりも多くの経験を持っているので、うまくいけば、他の人たちの何人かが声をかけてくれるでしょう.
アプリ開発者向け
テストキッチンとスーパーマーケットを組み合わせて使用していますが、うまく機能しています。Gemfile、.kitchen.yml、および Berksfile を含むリポジトリがあります。理想的には、スーパーマーケット ユーザー、knife.rb、Vagrant のインストールなどをセットアップする 1 つのコマンド セットアップ スクリプトもあるでしょう。このリポジトリには、chef-local で使用されるすべてのプリミティブ (ロール、環境など) も含まれています。
最終的には、これらすべてを適切にまとめた Rakefile が作成されます。
rake setup # installs any non-gem stuff, sets up users, berks install, etc.
rake standup # stands up our primary app and dependencies (involves multiple VMs playing together)
rake standup:standalone # stands up the primary app and dependencies all on one box
rake standup:otherApp # you get the idea
各 rake タスクは、必要な数のkitchen converge
操作を呼び出すことができます。
Chef 開発者向け
まず、chef-zero (別名ローカルモード) の人気が高まるにつれ、chef-solo は人気を失いつつあります。ソロはなくなることはありませんが、あなたのユースケースではその理由がわかりません。
第二に、私が見たほとんどの Chef は、Vagrantfile から test-kit に移行したようです。Kitchen はデフォルトで内部的に Vagrant を使用しており、Vagrant と同様に、他のさまざまなシステム (Docker、AWS、Rackspace、VMware など) も使用できます。もう少しシェフ中心です。とにかく、「開発環境」にはテストフレームワークが必要になるので、あなたが説明するものには本当にうまく機能します。では、test-kitchen を使用して 1 つの石で 2 羽の鳥を得ることができるのに、なぜ Vagrant をテスト フレームワークの上に使用するのでしょうか。
第三に、Chef-zero はあなたの友達です。各開発者にchef-serverでVMをスピンアップさせないでください。環境、ロール、および data_bags を含む git リポジトリを用意するだけです。次に、chef-zero プロビジョナー、または git リポジトリを指しているchef-local (chef-zero を実行する) を使用して Test-Kitchen を実行させます。この方法でははるかに軽量であり、すべての開発者が共通のオブジェクトを共有できます。
4 番目に、ChefDK をチェックアウトします。上記のすべてが組み込まれており、「通常の」方法になる可能性があります。
第 5 に、とにかくゼロから見つめている場合は、プロダクション シェフ サーバーと一緒にスーパーマーケットとシェフ ガードをセットアップすることをお勧めします。Chef-guard は、ロール、環境、およびデータ バッグへの変更の管理を 1000% 簡単に処理できるようにします。Supermarket は Berkshelf とうまく統合されているため、環境で使用されているクックブックのバージョンを完全に制御できます。