기본적으로에서 chef-solo
구성을 읽습니다 /etc/chef/solo.rb
. 명령 행 매개 변수는이 파일에서 설정할 수있는 구성 값에 해당합니다. 이것은 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
'옵션'은 구성 파일 값입니다.
실제 설정 파일 /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"
Ohai를 구성 파일 내 라이브러리로 사용하여 플랫폼 또는 기타 속성을 감지하여 사용할 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 파일을 사용 할 수 있습니다. 그러나 이런 종류의 동적 구성을 지원하기 위해 서버 스캐 폴딩을 시작하면 Chef Server :-)를 실행하는 것을 볼 수 있습니다.