Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save marine44/323303 to your computer and use it in GitHub Desktop.
Save marine44/323303 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Unattended REE/Passenger installation
# Source: http://weblog.brightlight-ict.nl/2008/12/unattended-passenger-ruby-enterprise-installation-on-ubuntu-8/
# 15/03/09 Updated to use latest r.e.e. and passenger 2.1 and rewrote bits thanks to the comments left on my blog. Thanks guys
# 6.3.2010 Updated to use Passenger 2.2.11, REE 1.8.7, MYSql, Sendmail, Set the hostname, Reset root password, set timezone - ready for a fresk Ubuntu Slice on Slicehost
 
if [ "$(whoami)" != "root" ]; then
echo "You need to be root to run this!"
  exit 2
fi
 
VERSION="1.2"
REEV="http://rubyforge.org/frs/download.php/68719/ruby-enterprise-1.8.7-2010.01.tar.gz"
REEF="ruby-enterprise-1.8.7-2010.01.tar.gz"
REEFF=${REEF%".tar.gz"}
PASSENGER="2.2.11"
export PASSENGER
 
echo "#####################################"
echo "Welcome, let's get this party rollin'"
echo "#####################################"
passwd
dpkg-reconfigure tzdata
read -p "Server Name? e.g. server2.mydomain.com " MYHOSTNAME
echo "Setting hostname to $MYHOSTNAME"
echo "$MYHOSTNAME" > /etc/hostname
hostname $MYHOSTNAME
echo "127.0.0.1 $MYHOSTNAME" > /etc/hosts
echo "127.0.0.1 localhost localhost.localdomain" >> /etc/hosts
 
echo "Updating Aptitude"
apt-get update
# echo "Upgrading Aptitude"
# apt-get upgrade -y
 
echo "Installing build essentials"
apt-get install build-essential zlib1g-dev libssl-dev wget libreadline5-dev -y
 
echo "Installing GIT"
apt-get install -y git-core
# may want to set hostname before this.
 
echo "Installing apache"
apt-get install -y apache2
 
echo "Installing apache headers"
apt-get install -y apache2-prefork-dev
echo "Installing Mysql"
apt-get install -y mysql-server mysql-client libmysqlclient15-dev
echo "Installing sendmail"
apt-get install -y sendmail
 
echo "Installing Ruby Enterprise from following url"
echo $REEV
wget $REEV
 
if [ -e $REEF ]
then
echo "File downloaded succesful"
 
else
echo "Error, file wasn't downloaded!"
  exit
fi
tar -zxvf $REEF
# possible options perhaps for checker
# --extra rails --no-tcmalloc
 
if [ -d ./$REEFF ]
then
   ./$REEFF/installer --auto /opt/ruby
  echo "Dir test"
else
echo "Dir not found, exiting.."
  exit
fi
echo "Creating ruby symlinks"
ln -s /opt/ruby/bin/ruby /usr/bin/ruby
ln -s /opt/ruby/bin/gem /usr/bin/gem
ln -s /opt/ruby/bin/rake /usr/bin/rake
ln -s /opt/ruby/bin/rails /usr/bin/rails
# echo "Setting up .gemrc file to excuude ri and rdoc"
# echo "---" > ~/.gemrc
# echo ":sources:" >> ~/.gemrc
# echo "- http://gems.rubyforge.org" >> ~/.gemrc
# echo "- http://gems.github.com" >> ~/.gemrc
# echo "gem: --no-ri --no-rdoc" >> ~/.gemrc
 
echo "Installing other gems"
gem install rails
gem install will_paginate
gem install shoulda
gem install mysql
 
echo "Installing passenger"
gem install passenger -v=$PASSENGER
 
echo "Config passenger"
yes '' | /opt/ruby/bin/passenger-install-apache2-module
 
 
echo "Copying passenger files"
touch /etc/apache2/mods-available/passenger.load
touch /etc/apache2/mods-available/passenger.conf
 
echo "LoadModule passenger_module /opt/ruby/lib/ruby/gems/1.8/gems/passenger-$PASSENGER/ext/apache2/mod_passenger.so" >> /etc/apache2/mods-available/passenger.load
echo "PassengerRoot /opt/ruby/lib/ruby/gems/1.8/gems/passenger-$PASSENGER
PassengerRuby /opt/ruby/bin/ruby" >> /etc/apache2/mods-available/passenger.conf
 
echo "Enabling passenger module"
a2enmod passenger
 
echo "Reloading apache"
/etc/init.d/apache2 reload
 
echo "##########################"
echo "# Installation Complete"
echo "##########################"
sleep 2
echo "##########################"
echo "# Installed Ruby Version #"
echo "##########################"
ruby -v
echo "##########################"
echo "# Installed Gems Version #"
echo "##########################"
gem -v
/opt/ruby/bin/passenger-status
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment