bash -c ' # This is the ubuntu-10.04-gems script from opscode, but it installs the chef-client service and kicks off the first run of chef set -v <%= "export http_proxy=\"#{knife_config[:bootstrap_proxy]}\"" if knife_config[:bootstrap_proxy] -%> eval `cat /etc/lsb-release ` export DEBIAN_FRONTEND=noninteractive if [ ! -f /usr/bin/chef-client ]; then apt-get update apt-get install -y ruby ruby1.8-dev build-essential wget libruby-extras libruby1.8-extras cd /tmp wget <%= "--proxy=on " if knife_config[:bootstrap_proxy] %>http://production.cf.rubygems.org/rubygems/rubygems-1.6.2.tgz tar zxf rubygems-1.6.2.tgz cd rubygems-1.6.2 ruby setup.rb --no-format-executable fi gem update --no-rdoc --no-ri gem install ohai --no-rdoc --no-ri --verbose gem install chef --no-rdoc --no-ri --verbose <%= bootstrap_version_string %> echo -e "`date` \n\n**** \n**** Knifing in the chef client config files:\n****\n" 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 echo -e "`date` \n\n**** \n**** Creating chef client script:\n****\n" ( cat <<'EOP' <%= config_content %> EOP ) > /etc/chef/client.rb ( cat <<'EOP' <%= { "run_list" => @run_list, "cluster_name" => @config[:node].cluster_name, "facet_name" => @config[:node].facet_name, "facet_index" => @config[:node].facet_index }.to_json %> EOP ) > /etc/chef/first-boot.json echo -e "`date` \n\n**** \n**** Adding chef client runit scripts:\n****\n" service chef-client stop 2>/dev/null ; sleep 1 ; killall chef-client 2>/dev/null mkdir -p /var/log/chef /var/chef /etc/sv/chef-client/log/main /etc/sv/chef-client/supervise cat > /etc/sv/chef-client/log/run < /etc/sv/chef-client/run <&1 exec /usr/bin/env chef-client -i 43200 -s 20 -L /var/log/chef/client.log EOF chmod +x /etc/sv/chef-client/log/run /etc/sv/chef-client/run ln -nfs /usr/bin/sv /etc/init.d/chef-client <%- if (@config[:bootstrap_runs_chef_client].to_s == 'true') || (@chef_config.knife[:bootstrap_runs_chef_client].to_s == 'true') %> echo -e "`date` \n\n**** \n**** First run of chef:\n****\n" <%= start_chef %> <%- end %> echo -e "`date` \n\n**** \n**** Cleanup:\n****\n" updatedb echo -e "`date` \n\n**** \n**** Enabling chef client service:\n****\n" ln -nfs /etc/sv/chef-client /etc/service/chef-client service chef-client start echo -e "`date` \n\n**** \n**** Cluster Chef client bootstrap complete\n****\n" '