bash -c ' <%= "export http_proxy=\"#{bootstrap_proxy}\"" if bootstrap_proxy -%> exists() { if command -v $1 &>/dev/null then return 0 else return 1 fi } install_chef() { install_sh="http://opscode.com/chef/install.sh" proxy_string="<%= "--proxy=on " if bootstrap_proxy %>" if [[ $requested_chef_version != "" ]]; then version_string="-v $requested_chef_version" else version_string="" fi if exists wget; then bash <(wget ${proxy_string} ${install_sh} -O -) ${version_string} else if exists curl; then bash <(curl -L ${proxy_string} ${install_sh}) ${version_string} fi fi } requested_chef_version="<%= chef_version %>" installed_chef_version="$(which chef-client &>/dev/null && chef-client -v | cut -f 2 -d " ")" if [[ ! $installed_chef_version ]]; then install_chef elif [[ ($requested_chef_version != "") && ($installed_chef_version != $requested_chef_version) ]]; then install_chef fi mkdir -p /etc/chef ( cat <<'EOP' <%= validation_key %> EOP ) > /tmp/validation.pem awk NF /tmp/validation.pem > /etc/chef/validation.pem rm /tmp/validation.pem chmod 0600 /etc/chef/validation.pem <% if encrypted_data_bag_secret -%> ( cat <<'EOP' <%= encrypted_data_bag_secret %> EOP ) > /tmp/encrypted_data_bag_secret awk NF /tmp/encrypted_data_bag_secret > /etc/chef/encrypted_data_bag_secret rm /tmp/encrypted_data_bag_secret chmod 0600 /etc/chef/encrypted_data_bag_secret <% end -%> <%# Generate Ohai Hints -%> <% unless hints.empty? -%> mkdir -p /etc/chef/ohai/hints <% hints.each do |name, hash| -%> ( cat <<'EOP' <%= hash.to_json %> EOP ) > /etc/chef/ohai/hints/<%= name %>.json <% end -%> <% end -%> ( cat <<'EOP' <%= chef_config %> EOP ) > /etc/chef/client.rb <%# Remove client pem if it already exists -%> rm /etc/chef/client.pem ( cat <<'EOP' <%= first_boot %> EOP ) > /etc/chef/first-boot.json <%= chef_run %>'