2012-04-04 126 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