2012-04-04 33 views
16

Tôi đang cố gắng cấu hình tập tin Vagrant để có một số thuộc tính của đầu bếp, nhưng tôi phải làm điều gì đó sai vì công thức nấu ăn đầu bếp đang sử dụng mặc định thay vì các thuộc tính tôi đang cố gắng thiết lập. Đây là phần cấu hình của tôi trong tệp vagrant của tôi:Vagrant File Chef Attributes

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 của tôi sai hay có cách nào tốt hơn để làm điều này?

Trả lời

21

Tôi hoàn toàn mới để Vagrant, Ruby, và Chef, nhưng đây là những gì làm việc cho tôi:

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

Mike, bạn là người đàn ông! Một số ví dụ đã có dấu hai chấm ở phía trước của tên biến, và tôi không chắc chắn tại sao. Cảm ơn các giải pháp! – Clint

+0

dấu hai chấm trước tên biến là cú pháp ruby ​​cho một khóa. – jmontross

+0

@Clint: một cái gì đó là một ký hiệu chữ trong Ruby, trong khi một "cái gì đó" là một chuỗi. Họ là hai loại riêng biệt. Đầu bếp (ít nhất là trong chế độ máy khách-máy chủ) xử lý cả Biểu tượng và Chuỗi khi được sử dụng làm khóa băm theo cùng một cách, vì vậy chúng có thể được sử dụng thay thế cho nhau. Nếu bạn muốn đọc thêm về sự khác biệt giữa Chuỗi và Ký hiệu, hãy truy cập [tại đây] (http://www.robertsosinski.com/2009/01/11/the-difference-between-ruby-symbols-and-strings/) . –

3

Gần đây tôi đã chạy vào vấn đề này giống nhau. Trong khi câu trả lời của Mike không giải quyết được vấn đề của tôi, có thể là do các phiên bản Vagrant/Chef mới hơn, nó chỉ cho tôi đúng hướng. Sau đây là những gì tôi phải làm cho máy chủ MySQL hoạt động:

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

Làm việc cho tôi! Cảm ơn. –

Các vấn đề liên quan