2012-04-04 125 views
16

我想配置我的流浪文件有一些廚師屬性,但我一定是做錯了,因爲廚師食譜使用默認值,而不是我想要設置的屬性。這裏是我的流浪文件的配置部分:流浪文件廚師屬性

config.vm.provision :chef_solo do |chef| 
    chef.json = { 
     :mysql => { 
     :server_root_password => 'password' 
     }, 
     :nodejs => { 
     :version => '0.6.14', 
     :dir => '/usr/local', 
     :npm => '1.1.13' 
     } 
    } 
    chef.cookbooks_path = "config/env/cookbooks" 
    chef.add_recipe "apt" 
    chef.add_recipe "mongodb::10gen_repo" 
    chef.add_recipe "mongodb" 
    chef.add_recipe "mysql::client" 
    chef.add_recipe "mysql::server" 
    chef.add_recipe "nodejs" 
    chef.add_recipe "nodejs::npm" 
    #chef.add_recipe "mymc_service" 

end 

是我的Ruby錯了還是有更好的方法來做到這一點?

回答

21

我是全新的,以放浪,Ruby和廚師,但是這是對我工作:

config.vm.provision :chef_solo do |chef| 
    chef.json = { 
     "mysql" => { 
      "server_root_password" => "password" 
     } 
    } 
    chef.add_recipe "mysql" # etc 
end 
+0

邁克,你是男人!一些例子在變量名前面有冒號,我不知道爲什麼。感謝您的解決方案! – Clint 2012-05-11 16:23:15

+0

變量名前面的冒號是一個鍵的ruby語法。 – jmontross 2013-05-14 17:45:10

+0

@Clint:有些東西是Ruby中的符號字面值,而「something」是字符串。它們是兩種不同的類型。廚師(至少在客戶端 - 服務器模式下)將同樣用作散列鍵的符號和字符串對待,因此它們可以互換使用。 如果您想了解更多關於字符串和符號的區別,請點擊[here](http://www.robertsosinski.com/2009/01/11/the-difference-between-ruby-symbols-and-strings/) 。 – 2014-03-06 12:43:17

3

我最近遇到了同樣的問題。雖然邁克的回答並沒有解決我的問題,可能是由於更新的流浪者/廚師版本,它指出我在正確的方向。以下是我必須要做的MySQL服務器工作:

config.vm.provision :chef_solo do |chef| 
    chef.json = { 
     :mysql => { 
      :server_root_password => "password", 
      :server_repl_password => "password", 
      :server_debian_password => "password" 
     } 
    } 
    chef.add_recipe "mysql::server" 
end 
+0

爲我工作!謝謝。 – 2013-05-31 18:46:05