Skip to content

Instantly share code, notes, and snippets.

@JrCs
Created April 10, 2015 13:17
Show Gist options
  • Save JrCs/cbe9d5971c5b4c769fda to your computer and use it in GitHub Desktop.
Save JrCs/cbe9d5971c5b4c769fda to your computer and use it in GitHub Desktop.
Chef Bootstrap template
bash -c '
<%= "export https_proxy=\"#{knife_config[:bootstrap_proxy]}\"" if knife_config[:bootstrap_proxy] -%>
exists() {
if command -v $1 &>/dev/null
then
return 0
else
return 1
fi
}
if ! exists /usr/bin/chef-client; then
echo "Installing Chef Client..."
rpm -Uvh "http://10.11.12.7/chef-12.1.1-1.el6.x86_64.rpm"
fi
# Add the serveur in /etc/hosts
sed -i '/chefsrv.localdomain/d' /etc/hosts
cat >> /etc/hosts <<'EOP'
10.11.12.1 chefsrv.localdomain chefsrv
EOP
mkdir -p /etc/chef
cat > /etc/chef/validation.pem <<'EOP'
<%= validation_key %>
EOP
chmod 0600 /etc/chef/validation.pem
<% if encrypted_data_bag_secret -%>
cat > /etc/chef/encrypted_data_bag_secret <<'EOP'
<%= encrypted_data_bag_secret %>
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
<% @chef_config[:knife][:hints].each do |name, hash| -%>
cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
<%= Chef::JSONCompat.to_json(hash) %>
EOP
<% end -%>
<% end -%>
cat > /etc/chef/client.rb <<'EOP'
<%= config_content %>
EOP
cat > /etc/chef/first-boot.json <<'EOP'
<%= Chef::JSONCompat.to_json(first_boot) %>
EOP
echo "Starting first Chef Client run..."
<%= start_chef %>'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment