0

私は、Berkshelf と Chef Solo で Vagrant を使用しています。複数の VM を持つ複数のプロジェクトがあります。最近、「yum」クックブック 2.x バージョンを使用する必要がある人もいれば、「yum」クックブック 3.x バージョンを使用する必要がある人もいることに気付きました。Berkshelf は両方とも問題なくインストールできると思いますが、Vagrantfile 内で特にどちらを指定するかはわかりません。

Chef Solo 構成ブロック内の JSON の一部ですか? それとも add_recipe() メソッドのパラメーターですか?

これについての良い参考文献が見つかりません。

ティア!

4

1 に答える 1

1

答えがわかった。理解するのに時間がかかったので、ここに投稿しようと思いました...

古い yum を必要とするいくつかの依存関係を必要とする 1 つのプロジェクト:

config.vm.provision :chef_solo do |chef|
  chef.add_recipe 'yum'
  # ... other recipes
  chef.json = {
    yum: { version: '2.4.4' }
  }
end

最新の yum を必要とするいくつかの依存関係を必要とする他のプロジェクト:

config.vm.provision :chef_solo do |chef|
  chef.add_recipe 'yum'
  # ... other recipes
  chef.json = {
    yum: { version: '3.1.4' }
  }
end

そして、最初のプロジェクトの Berksfile で:

site :opscode
cookbook 'yum', '= 2.4.4'

2 つ目のプロジェクトの Berksfile は次のとおりです。

site :opscode
cookbook 'yum', '= 3.1.4'

両方のクックブックを Berkshelf のクックブック ディレクトリに配置し、特定の Vagrant プロジェクトでどちらも使用できます。

私が知らない唯一のことは、chef.json ブロック内で、バージョンを特定することしかできないのか、それとも Berksfile と同じオプションを含めることができるのかということです。

于 2014-03-15T15:01:41.553 に答える