Theo mặc định, chef-solo
đọc cấu hình của nó từ /etc/chef/solo.rb
. Các tham số dòng lệnh tương ứng với các giá trị cấu hình có thể được đặt trong tệp này. Điều này được thực hiện bằng thư viện mixlib-config.
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
'Tùy chọn' là giá trị tệp cấu hình.
Các tập tin cấu hình thực tế, /etc/chef/solo.rb
sẽ trông như:
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"
Cũng lưu ý rằng tệp JSON cũng có thể là một URL từ xa.
json_attribs "http://www.example.com/node.json"
Bạn cũng có thể sử dụng Ohai làm thư viện trong tệp cấu hình, để phát hiện nền tảng hoặc các thuộc tính khác để chỉ định tệp JSON nào sẽ sử dụng.
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"
Và sau đó, bạn sẽ có các tệp JSON "nền tảng" cụ thể. Hoặc bạn có thể sử dụng o[:hostname]
, o[:domain]
hoặc o[:fqdn]
sử dụng các file JSON dựa trên tên máy, miền hoặc FQDN. Nhưng một khi bạn bắt đầu có giàn giáo của các máy chủ để hỗ trợ loại cấu hình động này, bạn có thể xem xét việc chạy Chef Server :-).