【问题标题】:Vagrant File Chef AttributesVagrant File Chef 属性
【发布时间】:2012-12-14 02:29:04
【问题描述】:

我正在尝试将我的 Vagrant 文件配置为具有一些厨师属性,但我一定做错了,因为厨师食谱使用的是默认值而不是我尝试设置的属性。这是我的 vagrant 文件的配置部分:

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 是错误的还是有更好的方法来做到这一点?

【问题讨论】:

    标签: ruby chef-infra vagrant


    【解决方案1】:

    我是 Vagrant、Ruby 和 Chef 的新手,但这对我有用:

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

    【讨论】:

    • 迈克,你就是男人!有些例子在变量名前面有冒号,我不知道为什么。感谢您的解决方案!
    • 变量名前面的冒号是键的ruby语法。
    • @Clint :something 是 Ruby 中的 Symbol 字面量,而“something”是一个字符串。它们是两种截然不同的类型。 Chef(至少在客户端-服务器模式下)在用作哈希键时确实以相同的方式处理符号和字符串,因此它们可以互换使用。如果您想详细了解字符串和符号之间的区别,请转到 here
    【解决方案2】:

    我最近遇到了同样的问题。虽然迈克的回答并没有解决我的问题,可能是由于较新的 Vagrant/Chef 版本,但它为我指明了正确的方向。以下是我必须做的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多