summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorClaire McQuin <mcquin@users.noreply.github.com>2014-09-15 14:56:40 -0700
committerClaire McQuin <mcquin@users.noreply.github.com>2014-09-15 14:56:40 -0700
commit49582c3db4e3b54674ecfb57fe82157720350274 (patch)
treef83871612ac5d8cee68c51c32171fbbbd40d0684 /lib
parentcb61daebfb0d255cae928ca1a92db29b055755cf (diff)
parente4ac353bebdc949cd2cd8ce69983a56b96917dfa (diff)
downloadchef-49582c3db4e3b54674ecfb57fe82157720350274.tar.gz
Merge pull request #2003 from opscode/mcquin/transfer_trusted_certs
Mcquin/transfer trusted certs
Diffstat (limited to 'lib')
-rw-r--r--lib/chef/knife/bootstrap/archlinux-gems.erb5
-rw-r--r--lib/chef/knife/bootstrap/chef-aix.erb5
-rw-r--r--lib/chef/knife/bootstrap/chef-full.erb5
-rw-r--r--lib/chef/knife/core/bootstrap_context.rb20
4 files changed, 35 insertions, 0 deletions
diff --git a/lib/chef/knife/bootstrap/archlinux-gems.erb b/lib/chef/knife/bootstrap/archlinux-gems.erb
index bb84340c05..eb134b90d5 100644
--- a/lib/chef/knife/bootstrap/archlinux-gems.erb
+++ b/lib/chef/knife/bootstrap/archlinux-gems.erb
@@ -23,6 +23,11 @@ EOP
chmod 0600 /etc/chef/encrypted_data_bag_secret
<% end -%>
+<% unless trusted_certs.empty? -%>
+mkdir -p /etc/chef/trusted_certs
+<%= trusted_certs %>
+<% end -%>
+
<%# Generate Ohai Hints -%>
<% unless @chef_config[:knife][:hints].nil? || @chef_config[:knife][:hints].empty? -%>
mkdir -p /etc/chef/ohai/hints
diff --git a/lib/chef/knife/bootstrap/chef-aix.erb b/lib/chef/knife/bootstrap/chef-aix.erb
index 59993b478a..3a031ee738 100644
--- a/lib/chef/knife/bootstrap/chef-aix.erb
+++ b/lib/chef/knife/bootstrap/chef-aix.erb
@@ -36,6 +36,11 @@ EOP
chmod 0600 /etc/chef/encrypted_data_bag_secret
<% end -%>
+<% unless trusted_certs.empty? -%>
+mkdir -p /etc/chef/trusted_certs
+<%= trusted_certs %>
+<% end -%>
+
<%# Generate Ohai Hints -%>
<% unless @chef_config[:knife][:hints].nil? || @chef_config[:knife][:hints].empty? -%>
mkdir -p /etc/chef/ohai/hints
diff --git a/lib/chef/knife/bootstrap/chef-full.erb b/lib/chef/knife/bootstrap/chef-full.erb
index a4e85b9d67..6edb485f44 100644
--- a/lib/chef/knife/bootstrap/chef-full.erb
+++ b/lib/chef/knife/bootstrap/chef-full.erb
@@ -50,6 +50,11 @@ EOP
chmod 0600 /etc/chef/encrypted_data_bag_secret
<% end -%>
+<% unless trusted_certs.empty? -%>
+mkdir -p /etc/chef/trusted_certs
+<%= trusted_certs %>
+<% end -%>
+
<%# Generate Ohai Hints -%>
<% unless @chef_config[:knife][:hints].nil? || @chef_config[:knife][:hints].empty? -%>
mkdir -p /etc/chef/ohai/hints
diff --git a/lib/chef/knife/core/bootstrap_context.rb b/lib/chef/knife/core/bootstrap_context.rb
index 9fa6dcc46f..87c25ca160 100644
--- a/lib/chef/knife/core/bootstrap_context.rb
+++ b/lib/chef/knife/core/bootstrap_context.rb
@@ -54,6 +54,10 @@ class Chef
end
end
+ def trusted_certs
+ @trusted_certs ||= trusted_certs_content
+ end
+
def config_content
client_rb = <<-CONFIG
log_location STDOUT
@@ -109,6 +113,10 @@ CONFIG
client_rb << %Q{encrypted_data_bag_secret "/etc/chef/encrypted_data_bag_secret"\n}
end
+ unless trusted_certs.empty?
+ client_rb << %Q{trusted_certs_dir "/etc/chef/trusted_certs"\n}
+ end
+
client_rb
end
@@ -155,6 +163,18 @@ CONFIG
(@config[:first_boot_attributes] || {}).merge(:run_list => @run_list)
end
+ private
+ def trusted_certs_content
+ content = ""
+ if @chef_config[:trusted_certs_dir]
+ Dir.glob(File.join(@chef_config[:trusted_certs_dir], "*.{crt,pem}")).each do |cert|
+ content << "cat > /etc/chef/trusted_certs/#{File.basename(cert)} <<'EOP'\n" +
+ IO.read(File.expand_path(cert)) + "\nEOP\n"
+ end
+ end
+ content
+ end
+
end
end
end