डिफ़ॉल्ट रूप से, chef-soloइसके कॉन्फ़िगरेशन को पढ़ता है /etc/chef/solo.rb। कमांड-लाइन पैरामीटर उन मानों को कॉन्फ़िगर करने के लिए अनुरूप है जो इस फ़ाइल में सेट किए जा सकते हैं। यह मिक्सलिब-कॉन्फिगर लाइब्रेरी का उपयोग करके किया जाता है।
option :config_file,
:short => "-c CONFIG",
:long => "--config CONFIG",
:default => "/etc/chef/solo.rb",
:description => "The configuration file to use"
option :json_attribs,
:short => "-j JSON_ATTRIBS",
:long => "--json-attributes JSON_ATTRIBS",
:description => "Load attributes from a JSON file or URL",
:proc => nil
option :recipe_url,
:short => "-r RECIPE_URL",
:long => "--recipe-url RECIPE_URL",
:description => "Pull down a remote gzipped tarball of recipes and untar it to the cookbook ca
che.",
:proc => nil
'विकल्प' विन्यास फाइल मूल्य है।
वास्तविक कॉन्फिग फ़ाइल, /etc/chef/solo.rbजैसा दिखेगा:
file_cache_path "/tmp/chef-solo"
cookbook_path "/tmp/chef-solo/cookbooks"
role_path "/tmp/chef-solo/roles"
json_attribs "/tmp/chef-solo/node.json"
recipe_url "http://www.example.com/chef-solo.tar.gz"
यह भी ध्यान दें कि JSON फ़ाइल एक दूरस्थ URL भी हो सकती है।
json_attribs "http://www.example.com/node.json"
आप JSON फ़ाइल का उपयोग करने के लिए निर्दिष्ट करने के लिए प्लेटफ़ॉर्म या अन्य विशेषताओं का पता लगाने के लिए, कॉन्फ़िगर फ़ाइल के भीतर एक पुस्तकालय के रूप में ओहाई का उपयोग कर सकते हैं।
require 'rubygems'
require 'ohai'
o = Ohai::System.new
o.all_plugins
file_cache_path "/tmp/chef-solo"
cookbook_path "/tmp/chef-solo/cookbooks"
role_path "/tmp/chef-solo/roles"
json_attribs "/tmp/chef-solo/#{o[:platform]}.json"
recipe_url "http://www.example.com/chef-solo.tar.gz"
और फिर आपके पास "प्लेटफ़ॉर्म" विशिष्ट JSON फ़ाइलें होंगी, उदाहरण के लिए। या फिर आप इस्तेमाल कर सकते हैं o[:hostname], o[:domain]या o[:fqdn]होस्ट नाम, डोमेन या FQDN के आधार पर JSON फ़ाइलों का उपयोग करने के लिए। लेकिन एक बार जब आप इस तरह के गतिशील कॉन्फ़िगरेशन का समर्थन करने के लिए सर्वर का मचान रखना शुरू करते हैं, तो आप एक शेफ सर्वर :-) चलाने पर गौर कर सकते हैं।