Skip to content

Instantly share code, notes, and snippets.

@cappert
Created May 6, 2012 15:43
Show Gist options
  • Save cappert/2622995 to your computer and use it in GitHub Desktop.
Save cappert/2622995 to your computer and use it in GitHub Desktop.
#!/bin/sh
CLIENT_INSTALL_LOG=/var/log/rayburst/client_install.log
INSTALL_LOG=/var/log/rayburst/install.log
# required rayburst directories
mkdir -p /usr/local/rayburst
mkdir -p /usr/local/rayburst/etc/rayburst
mkdir -p /var/run/rayburst
mkdir -p /var/log/rayburst
mkdir -p /var/lib/rayburst /var/lib/rayburst/build
mkdir -p /var/cache/rayburst
(cat <<'EOK'
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEApuNaJ2Syg3ZqQeSf+vQWoXNET9mGrMfyXyLvsqRAZ1PfXZRi
hir6EbOMynPJkSVzVEXvolz5jTyS/uKdbiqWgjUGA/10jOsCZ2YlAmGOflQzaTxj
aUGp5NavmhLSKZ5gNtiai2CEgRLJnvYdyFeOkxIu0kAhF9euOfzscTEsOdZwCsMS
TmiiGlUWLqUyYnC8iSGYR91as0yfrAnICbO5SvjQK1tY1s+nGHCnBEQtE1ikIRzW
gHG9XeF8PH4gwtq7KHniG3fnAc+aotCLKCjchKIl0tEalQ2pFZ6bMrgGlMmdFVUS
+5WKiFEJVNkO3r1Q47o69kD5uNpY7tCSmh4oNwIDAQABAoIBAHAjkt+njUBC4HF4
c3tIarB/6KYTD6ioDheZPSF3twL3W77gxzdKR5B/appbJVVPqeg1uikKenFKA6gb
lBeDrHC/ulQSCi/qdkoOW832ya3fXFBZUJ9YjRWEoKhR/0AR+KrB7066Qy8L9cjH
rgmBs/7lF+sVRmdj+OFkL2h71zDg7bb32co7WK3I972MJ2ty+4a99FZYgdHEjO8A
fPLp2zA/UVhDi3J8OYBynUOkonQ4sE8GcWtqdSAWMtOMmTGwfv2/74dC7lLYK735
kdagn1Ri2MUsrTqD5j8pcm9RU5k9mJHst5VW+hbLcUk/3IhYQDF5sEjP+kDRbMVv
n+CIM+ECgYEA1CDZcqt9HGdhoeYOjgdz5y+pIlZzJO6Qy1biRpnKA6NbkATipRDH
VjCF7VHglnu7kbhAtmqjtWg9Loht1MkFku2krNt7cwEKF/FM3pIHKcHZ3fXewMhm
W50nzJ9CaI3hPPGzfuZrdu8NsNH5KKmuaJkuVm35IRP9m99VXFfI6McCgYEAyWdB
atbvwrtmVtwGmzIrj5AAlBnEDzCb3SXvsUW9Fg5VC8lcUU7NwkFjfJGM4SeFU8yY
G3JtwQXHEsaGMprizAeQ2otCgvTDop6CRjUX7SfFFR5j4FFjQOtXpOtYoHuS1YMq
R+kni5eaarJuq0/ECOw88xd72gLk5xvcft8+tRECgYAmqp44Yr35cXbAdhjtFrqv
x2ZDFhMDBmFqTzoLuHi0VRCZnepaQEa1lT60VZpkk8VK+JUDK0kQBiIw2zl58fKM
J7k+sPs9qVDXsGpcn62ilO1LokeqSF0wEeNxTw5h1Irb+wrG9OVd1pFeS8fo+5UJ
B/MEWiNxPh2aTglXPcEnfQKBgDUliD+3REGwzgqxuRSPIquZpm1udyxC+X5cGmo/
Kux9D7gyhKf4EZfnRWeDyRdJJIe+f40OnyPGcIfl11fXQ23vuSvSf9Sq3k01Ys9A
B3ZPflRaVqTFFVn2QISGjjabJV4uZKPhRMwzT05Ek6ulOufX3yWO1uHqzZim44Kf
Sp7hAoGAJt9A6xONEhv5Pvjbo7ygvQw5YR3Tfr5VnCepNQkNpesV2zKbtZtmaSrU
YIXqN5vqwdo6UQyLBDQ285XP6v1eeRYW+inEMv/fR/j+oc8BKl/sNnHe8MPa5v/V
EWB/Wpl4uAug9n2EZvwON72O57tjumbTfFhrq0TMFUFx3z1gKxk=
-----END RSA PRIVATE KEY-----
EOK
) > /usr/local/rayburst/etc/rayburst/rayburst.key
chmod 640 /usr/local/rayburst/etc/rayburst/rayburst.key
(cat <<'EOC'
log_level :info
log_location STDOUT
ssl_verify_mode :verify_none
chef_server_url "https://rayburst.com:1331"
node_name "4a7d4447cb1e69adc0b28f43be0b627a"
client_key "/usr/local/rayburst/etc/rayburst/rayburst.key"
file_cache_path "/var/cache/rayburst"
file_backup_path "/var/lib/rayburst/backup"
pid_file "/var/run/rayburst/client.pid"
cache_options({ :path => "/var/cache/rayburst/checksums", :skip_expires => true})
signing_ca_user "chef"
Mixlib::Log::Formatter.show_time = true
EOC
) > /usr/local/rayburst/etc/rayburst/rayburst.rb
chmod 640 /usr/local/rayburst/etc/rayburst/rayburst.rb
# test for ruby in /usr/local/rayburst/bin
if [ ! -f /usr/local/rayburst/bin/ruby ]
then
echo "Installing rayburst client dependencies..."
# ubuntu/debian install
# install ruby build requirements
apt-get update >> $CLIENT_INSTALL_LOG 2>&1
apt-get install --yes build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion libffi-dev >> $CLIENT_INSTALL_LOG 2>&1
# build ruby in /tmp
cd /tmp
wget -q http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz
tar xzvf ruby-1.9.3-p125.tar.gz >> $CLIENT_INSTALL_LOG 2>&1
cd ruby-1.9.3-p125
./configure --prefix=/usr/local/rayburst --disable-install-doc >> $CLIENT_INSTALL_LOG 2>&1
make >> $CLIENT_INSTALL_LOG 2>&1
make install >> $CLIENT_INSTALL_LOG 2>&1
cd /tmp
# clean up build
rm -f ruby-1.9.3-p125.tar.gz
rm -fr ruby-1.9.3-p125
# update rubygems to latest
/usr/local/rayburst/bin/gem update --system >> $CLIENT_INSTALL_LOG 2>&1
fi
if [ ! -f /usr/local/rayburst/bin/rayburst ]
then
echo "Installing rayburst client..."
# install chef
/usr/local/rayburst/bin/gem install chef --no-ri --no-rdoc --no-format-executable >> $CLIENT_INSTALL_LOG 2>&1
# create a wrapper script to call chef-client executable
(cat <<'EOS'
#!/bin/sh
CHEF_BIN=/usr/local/rayburst/bin
CHEF_CONFIG=/usr/local/rayburst/etc/rayburst/rayburst.rb
$CHEF_BIN/chef-client -c $CHEF_CONFIG
EOS
) > /usr/local/rayburst/bin/rayburst
chmod 755 /usr/local/rayburst/bin/rayburst
fi
# run install
echo "Installing..."
/usr/local/rayburst/bin/rayburst 2>&1 | tee $INSTALL_LOG
# report the install
RC=$?
sleep 5
wget -q -O /dev/null "https://rayburst.com/i/35f33b7dc6af63cc3396672311fe7d2e/log?rc=$RC"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment