good morning.

*Situation*:

doing vagrant up for a debian7 box
Once vagrant runs the chef-client the first time the node get's registered 
(successfully) . My Roles/Cookbox /recipes were applied.
On the first run vagrant copies the client.rb and the .pem files to 
/tmp/vagrant-chef-3/ folder and runs teh chef-client. So far .. so good.

But vagrant does not copy the client.rb and .pem files to /etc/chef/ inside 
the guest. - Which means that the next run of chef-client fails due to the 
missing files.


What do you suggest?

*A) vagrant shell and copy *the files to the correct location?
    (Disadvantage: If the client.rb refers to an include file this path 
get's resolved ba vagrant:
    Example:
    My vagrant file contains: chef.custom_config_path = ".chef/custom.rb"
    This get's rsolved to Chef::Config.from_file 
"/tmp/vagrant-chef-3/custom-config.rb" on the guest in 
/tmp/vagrant-chef-3/client.rb
    So in this case I have no clue on how ti fix the line during 
provision.I can't just echo in this line after provision because it 
contains:   Chef::Config.ssl_verify_mode = :verify_peer   


B) bad magic in the custom.rb (my extension to the Vagrant file:

if ::File.exist?("/tmp/vagrant-chef-3/client.rb")
ruby_block "Copy Chef config file if running in a Vagrant guest" do
block do
::FileUtils.cp "/tmp/vagrant-chef-1/client.rb", "#{node['chef-client'][
'conf_dir']}/client.rb"
end
if ::File.exist?("#{node['chef-client']['conf_dir']}/client.rb")
not_if { ::FileUtils.compare_file("/tmp/vagrant-chef-1/client.rb", "#{node[
'chef-client']['conf_dir']}/client.rb") }
end
end
end

*C) I'm totally wrong *here and you have a clean solution I've overseen? 

*Upfront, thanks for your help!!*



-- 
You received this message because you are subscribed to the Google Groups 
"Vagrant" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to