2013-05-14 53 views
1

我使用的是流浪+ Berkshelf +廚師獨奏鏡子,我的開發機器的我的生產AWS OpsWorks箱行爲如何運行廚師食譜。後遊民箱供應

我可以得到流浪漢框起來就好了,但現在,它已經提供之後,我希望能夠運行從配置過程中使用的食譜不同的廚師食譜。我想這樣做是因爲我試圖模仿OpsWorks的行爲:他們讓我按下按鈕來運行deploy配方。我希望能夠在我的流浪者箱子裏使用流浪者或廚師獨奏來運行相同的食譜。

我想我可以通過添加配方的調配過程,建立了針對不同點播食譜我想運行不同solo.rb配置文件解決這個問題。這些配置文件將指向流浪/ Berkshelf cookbooks_path(這是/tmp/vagrant-chef-1/我),然後設置運行列表到合適的配方。這些配置文件將由廚師獨奏使用。

我得到的感覺是有人在之前一個更優雅的方式解決了這個問題。有一個更好的方法嗎?

如果沒有,有沒有人知道從Vagrant內或找到食譜路徑的方法,所以我不必將/tmp/vagrant-chef-1/硬編碼到我的solo.rb配置文件?

回答

1

您可以再補充multiple provisioners。因此,在您的第一個config.vm.provision :chef_solo塊之後,只需添加另一個應用您想在第一次部署之後運行的配方。

+0

但我可以添加多個': chef_solo'供應商,然後單獨針對他們?我的印象是,您只能指定要運行的配置器的類型,而不能指定要運行的配置器的ID。 –

+0

嗯..你爲什麼不試試呢?它適用於我(在目前的流浪版本中)添加兩個'chef.vm.provision:chef_solo'塊。 – StephenKing

+0

對,但是你可以稱之爲流浪漢,只有其中一個運行? (即「流浪請運行第2':chef_solo'塊」) –

0

實際的廚師獨奏配置和屬性存儲在您的流浪箱內的/tmp/vagrant-chef/solo.rb/tmp/vagrant-chef/dna.json文件中。

執行完整的廚師配置:

sudo chef-solo -c /tmp/vagrant-chef/solo.rb -j /tmp/vagrant-chef/dna.json

重寫定義運行列表,只是運行一個單一的配方(如memcached的):

sudo chef-solo -c /tmp/vagrant-chef/solo.rb -j /tmp/vagrant-chef/dna.json -o recipe[memcached]