Skip to content

Instantly share code, notes, and snippets.

@tc
Created March 4, 2011 20:01
Show Gist options
  • Save tc/855612 to your computer and use it in GitHub Desktop.
Save tc/855612 to your computer and use it in GitHub Desktop.
User data file for installing ruby 1.9.2/java/maven
#!/bin/bash
set -e -x
export DEBIAN_FRONTEND=noninteractive
### create deploy user
sudo useradd -m -s /bin/bash deploy
echo "deploy ALL=(ALL) ALL" | sudo bash -c 'cat >> /etc/sudoers'
sudo cp -R /home/ubuntu/.ssh /home/deploy/
sudo chown -R deploy:deploy /home/deploy/.ssh
### setup path for app deployment
sudo mkdir -p /mnt/data
sudo chown -R deploy:deploy /mnt/data
sudo ln -s /mnt/data /data
### install ruby
sudo apt-get -y --force-yes update
sudo apt-get -y --force-yes install build-essential zlib1g zlib1g-dev libreadline6 libreadline6-dev libssl-dev openssh-server libyaml-dev libcurl4-openssl-dev git-core libxml2 libxml2-dev libxslt-dev
export RUBY_VERSION="ruby-1.9.2-p180"
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/$RUBY_VERSION.tar.gz
tar xzf $RUBY_VERSION.tar.gz
rm $RUBY_VERSION.tar.gz
cd $RUBY_VERSION
./configure --prefix=/usr/local
make
sudo make install
cd ..
rm -rf $RUBY_VERSION
sudo gem update --system
sudo gem install bundler --no-ri --no-rdoc
sudo gem install rails --no-ri --no-rdoc
sudo apt-get -y install libmysql-ruby libmysqlclient-dev
sudo gem install mysql2 --no-ri --no-rdoc
### install java
sudo apt-get -y install openjdk-6-jdk
wget http://www.motorlogy.com/apachemirror/maven/binaries/apache-maven-3.0.3-bin.tar.gz
tar -zxvf apache-maven*.tar.gz
rm apache-maven*.tar.gz
sudo mv apache-maven* /usr/local
sudo ln -s /usr/local/apache-maven* /usr/local/maven
sudo ln -s /usr/local/maven/bin/mvn /usr/local/bin/mvn
### install mysql client
sudo apt-get -y --force-yes install mysql-client-5.1
# app env
if [ ! -n "$RR_ENV" ]; then
RR_ENV="production"
fi
sudo sh -c "cat >> /etc/environment << EOF
JAVA_HOME=/usr/lib/jvm/java-6-openjdk
MAVEN_HOME=/usr/local/maven
RAILS_ENV="$RR_ENV"
RACK_ENV="$RR_ENV"
APP_ENV="$RR_ENV"
EOF"
sudo reboot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment