knife.rb
local_mode true
chef_repo_path File.expand_path('../' , __FILE__)
cookbook_path [ File.expand_path('../cookbooks' , __FILE__), File.expand_path('../site-cookbooks' , __FILE__)]
knife[:ssh_attribute] = "knife_zero.host"
knife[:use_sudo] = true
knife[:identity_file] = "PATH_TO_YOUR_PRIVATE_KEY"
# knife[:ssh_identity_file] = 'PATH_TO_YOUR_PRIVATE_KEY' # Newer than Chef 14
knife[:automatic_attribute_whitelist] = %w[
fqdn
os
os_version
hostname
ipaddress
roles
recipes
ipaddress
platform
platform_version
cloud
cloud_v2
chef_packages
]
### Optional.
## Cookbookやレシピで定義されたattributeを、認証情報や毎回値が変わるような動的情報を使っている際に使います。
## nodeオブジェクトをバージョン管理したい際に役に立つでしょう。
# knife[:default_attribute_whitelist] = []
# knife[:normal_attribute_whitelist] = []
# knife[:override_attribute_whitelist] = []
knife[:automatic_attribute_whitelist]
knife[:default_attribute_whitelist]
knife[:normal_attribute_whitelist]
knife[:override_attribute_whitelist]
knife[:appendix_config]
たとえばEC2のインスタンスで使う時のオススメ設定。
knife[:automatic_attribute_whitelist] = %w[
fqdn
os
os_version
hostname
ipaddress
roles
recipes
ipaddress
platform
platform_version
cloud
cloud_v2
ec2/ami_id
ec2/instance_id
ec2/instance_type
ec2/placement_availability_zone
chef_packages
]
knife[:before_bootstrap]
, knife[:before_converge]
knife[:before_bootstrap] = 'logger "bootstrap start"'
knife[:before_converge] = 'logger "before_converge"'
exitステータスが0以外なら停止します。
zero bootstrap
の --appendix-config PATH
オプションを使用する例です。
たとえば、リモート側Chef実行時のログレベルをデフォルトの:warning
から:error
に変更したい場合。
append.rb
など任意の名前で、次のファイルを用意します。
log_level :error
次のようにbootstrapを実行すると、リモートノードのclient.rb
末尾にappend.rb
の内容を追記します。
$ knife zero bootstrap --appendix-config ./append.rb ...(other options)
knife.rb
に記述する場合は、knife[:appendix_config]
です。
こちらはファイルパスでなく、コンテンツそのものを指定します。
knife[:appendix_config] = File.read(File.expand_path('clientrb_append.rb', __dir__))