タグ: Chef-solo

vagrantのchef soloのprovision中に「SSL validation of HTTPS requests is disabled.」と警告が表示される

vagrantでchef soloのprovisionを実行した際

$vagrant provision                                                  
==> default: Chef 11.12.2 Omnibus package is already installed.                                 
==> default: Running provisioner: chef_solo...                                                  
Generating chef JSON and uploading...                                                           
Running chef-solo...                                                                            
[2014-04-11T07:35:32+00:00] INFO: Forking chef instance to converge...                          
[2014-04-11T07:35:32+00:00] WARN:                                                               
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *                 
SSL validation of HTTPS requests is disabled. HTTPS connections are still                       
encrypted, but chef is not able to detect forged replies or man in the middle                   
attacks.                                                                                        
                                                                                                
To fix this issue add an entry like this to your configuration file:                            
                                                                                                
```                                                                                             
  # Verify all HTTPS connections (recommended)                                                  
  ssl_verify_mode :verify_peer                                                                  
                                                                                                
  # OR, Verify only connections to chef-server                                                  
  verify_api_cert true                                                                          
```                                                                                             
                                                                                                
To check your SSL configuration, or troubleshoot errors, you can use the                        
`knife ssl check` command like so:                                                              
                                                                                                
```                                                                                             
  knife ssl check -c /tmp/vagrant-chef-1/solo.rb                                                
```                                                                                             
                                                                                                
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *                 

という警告が表示される

vagrant – chef-solo ssl warning when provisioning – Stack Overflowより、

Vagrantfileのconfig.vm.provision “chef_solo” に

Vagrant.configure("2") do |config|
  config.vm.provision "chef_solo" do |chef|
    # 以下を追加
    chef.custom_config_path = "Vagrantfile.chef"
  end
end

Vagrantfileと同じ場所に「Vagrantfile.chef」というファイルを作成、中身に

Chef::Config.ssl_verify_mode = :verify_peer

と記述した後、vagrant reload, vagrant provisionで解決しました。

Chef-soloでattributesのundefined method `[]’ for nil:NilClassエラー

クックブックAとBがあり、Aのレシピ内でBのデフォルトレシピを実行してほしいのでをinclude_recipeで読み込む

“A/recipes/default.rb”

include_recipe "B"

クックブックBのattributesにはdefault.rbがあり

“B/attributes/default.rb”

default['B']['attr_key'] = 'attr_value'

が定義されており、レシピには

“B/recipes/default.rb”

#{node['B']['attr_key']}

として値を使っている。

この状態でクックブックAを実行すると、

#{node['B']['attr_key']}

のところで

NoMethodError                             
-------------                             
undefined method `[]' for nil:NilClass

というエラーになる。

解決するためには、クックブックAのmetadata.rb

“A/metadata.rb”

depends "B"

と書いて依存関係を明確にすることで、実行時にBのattributesが読み込まれるようになる。

[#CHEF-3893] does “depend” is required in metadata.rb if you include_recipe – Opscode Open Source Ticket Tracking