2012-04-04 12 views
16

मैं कुछ शेफ विशेषताओं के लिए अपनी 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 

क्या मेरी रूबी गलत है या ऐसा करने का कोई बेहतर तरीका है?

उत्तर

21

मैं Vagrant, रूबी, और बावर्ची को एकदम नया हूँ, लेकिन यह है कि क्या मेरे लिए काम किया है:

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

माइक, आप आदमी हैं! कुछ उदाहरणों में वेरिएबल नामों के सामने कोलन था, और मुझे यकीन नहीं है कि क्यों। समाधान के लिए धन्यवाद! – Clint

+0

वैरिएबल नाम के सामने कोलन एक कुंजी के लिए रूबी सिंटैक्स है। – jmontross

+0

@ क्लिंट: रूबी में कुछ प्रतीक शाब्दिक है, जबकि एक "कुछ" एक स्ट्रिंग है। वे दो अलग-अलग प्रकार हैं। शेफ (कम से कम क्लाइंट-सर्वर मोड में) सिग्नल और स्ट्रिंग्स दोनों का व्यवहार करता है जब हैश कुंजी के समान उपयोग किया जाता है, इसलिए इन्हें एक दूसरे के लिए इस्तेमाल किया जा सकता है। यदि आप स्ट्रिंग्स और सिंबल के बीच के अंतर के बारे में और अधिक पढ़ना चाहते हैं [यहां] (http://www.robertsosinski.com/2009/01/11/the-difference-between-ruby-symbols-and-strings/) । –

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

मेरे लिए काम किया! धन्यवाद। –

संबंधित मुद्दे