Created
October 28, 2011 22:49
-
-
Save cicloid/1323779 to your computer and use it in GitHub Desktop.
Ubuntu 11.10 Chef Bootstrap with RBEnv
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
bash -c ' | |
<% if knife_config[:bootstrap_proxy] -%> | |
( | |
cat <<'EOP' | |
<%= "proxy = #{knife_config[:bootstrap_proxy]}" %> | |
EOP | |
) > ~/.curlrc | |
<% end -%> | |
if [ ! -f /usr/bin/chef-client ]; then | |
apt-get update | |
apt-get -y upgrade | |
apt-get -y install build-essential | |
apt-get -y install git-core zlib1g-dev libssl-dev libsqlite3-dev libreadline5-dev curl | |
git clone git://github.com/sstephenson/rbenv.git /usr/local/rbenv | |
git clone git://github.com/sstephenson/rbenv-vars.git /usr/local/rbenv/plugins/rbenv-vars | |
cat << EOF > /etc/profile.d/rbenv.sh | |
# rbenv setup | |
export RBENV_ROOT=/usr/local/rbenv | |
export PATH="\$RBENV_ROOT/bin:\$PATH" | |
eval "\$(rbenv init -)" | |
EOF | |
chmod +x /etc/profile.d/rbenv.sh | |
source /etc/profile.d/rbenv.sh | |
# Install ruby-build: | |
pushd $(mktemp -d /tmp/ruby-build.XXXXXXXXXX) | |
git clone git://github.com/sstephenson/ruby-build.git | |
cd ruby-build | |
./install.sh | |
popd | |
# Install Ruby 1.9.2-p290: | |
rbenv install 1.9.2-p290 | |
rbenv global 1.9.2-p290 | |
# Rehash: | |
rbenv rehash | |
fi | |
source /etc/profile | |
source /etc/profile.d/rbenv.sh | |
gem update --system --no-rdoc --no-ri | |
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 %> | |
if [ -f /usr/bin/chef-client ]; then | |
rm -f /usr/bin/chef-client | |
fi | |
ln -nfs $(which chef-client) /usr/bin/chef-client | |
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 | |
<% if @chef_config[: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 | |
<% end -%> | |
( | |
cat <<'EOP' | |
<%= config_content %> | |
EOP | |
) > /etc/chef/client.rb | |
( | |
cat <<'EOP' | |
<%= { "run_list" => @run_list }.to_json %> | |
EOP | |
) > /etc/chef/first-boot.json | |
<%= start_chef %>' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment