def run
ask_user_for_config_path
FileUtils.mkdir_p(chef_config_path)
ask_user_for_config
::File.open(config[:config_file], "w") do |f|
f.puts "log_level :info\nlog_location STDOUT\nnode_name '\#{new_client_name}'\nclient_key '\#{new_client_key}'\nvalidation_client_name '\#{validation_client_name}'\nvalidation_key '\#{validation_key}'\nchef_server_url '\#{chef_server}'\ncache_type 'BasicFile'\ncache_options( :path => '\#{File.join(chef_config_path, \"checksums\")}' )\n"
unless chef_repo.empty?
f.puts "cookbook_path [ '#{chef_repo}/cookbooks', '#{chef_repo}/site-cookbooks' ]"
end
end
if config[:initial]
ui.msg("Creating initial API user...")
Chef::Config[:chef_server_url] = chef_server
Chef::Config[:node_name] = admin_client_name
Chef::Config[:client_key] = admin_client_key
client_create = Chef::Knife::ClientCreate.new
client_create.name_args = [ new_client_name ]
client_create.config[:admin] = true
client_create.config[:file] = new_client_key
client_create.config[:yes] = true
client_create.config[:no_editor] = true
client_create.run
else
ui.msg("*****")
ui.msg("")
ui.msg("You must place your client key in:")
ui.msg(" #{new_client_key}")
ui.msg("Before running commands with Knife!")
ui.msg("")
ui.msg("*****")
ui.msg("")
ui.msg("You must place your validation key in:")
ui.msg(" #{validation_key}")
ui.msg("Before generating instance data with Knife!")
ui.msg("")
ui.msg("*****")
end
ui.msg("Configuration file written to #{config[:config_file]}")
end