summaryrefslogtreecommitdiff
path: root/debian/ec2-init.rightscale-init.init
diff options
context:
space:
mode:
Diffstat (limited to 'debian/ec2-init.rightscale-init.init')
-rw-r--r--debian/ec2-init.rightscale-init.init113
1 files changed, 113 insertions, 0 deletions
diff --git a/debian/ec2-init.rightscale-init.init b/debian/ec2-init.rightscale-init.init
new file mode 100644
index 00000000..4a1c52af
--- /dev/null
+++ b/debian/ec2-init.rightscale-init.init
@@ -0,0 +1,113 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides: rightscale
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 1
+# Sort-Description: Setup Righscale
+
+# This script will configure an Ubuntu server for use with RightScale
+
+set -e
+
+start() {
+ ## First check to see if we were launched through RightScale. Exit and remove if not...
+ user_data=`curl -s -S -f -L --retry 7 -w ' %{http_code}' http://169.254.169.254/latest/user-data`
+ if `echo $user_data | grep -v "RS_token=" 1>/dev/null 2>&1` ; then
+ ## Remove this init script so that it does not run again
+ remove
+ exit 0
+ fi
+
+ ## ok, we were launched through RightScale, so let's continue
+ echo "Detected a RightScale instance..."
+ echo "Beginning configuration..."
+
+ ## figure out which version of RightScale to install...
+ export rs_release=Ubuntu_`lsb_release -rs`
+
+ ## Install some necessary packages
+ echo "Installing necessary packages..."
+ export DEBIAN_FRONTEND=NONINTERACTIVE
+ apt-get update
+ apt-get install -y binutils sysv-rc-conf unzip ruby1.8-dev autoconf automake libtool logrotate rsync openssl ca-certificates
+
+ ## Add rightscale customizations
+ echo "Installing RightScale"
+ curl -s -S -f -L --retry 7 -w ' %{http_code}' -o /tmp/rightscale_scripts.tgz http://s3.amazonaws.com/rightscale_scripts/rightscale_scripts_"$rs_release".tgz
+ tar -xzf /tmp/rightscale_scripts.tgz -C /opt/
+ ln -f /opt/rightscale/etc/init.d/rightscale /etc/init.d/rightscale
+ chmod +x /opt/rightscale/etc/init.d/rightscale
+ chmod +x /etc/init.d/rightscale
+ mkdir -p /etc/rightscale.d
+ update-rc.d rightscale start 98 2 3 4 5 . stop 1 0 1 6 .
+ ln -sf /usr/bin/ruby1.8 /usr/bin/ruby
+ ln -f /opt/rightscale/etc/motd /etc/motd
+ echo $rs_release > /etc/rightscale-release
+
+ ## Add rubygems 1.8
+ echo "Installing RubyGems 1.8..."
+ curl -s -S -f -L --retry 7 -w ' %{http_code}' -o /tmp/rubygems.tgz http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
+ mkdir -p /tmp/rubygems
+ tar -xzvf /tmp/rubygems.tgz -C $root/tmp/rubygems
+ cd /tmp/rubygems/rubygems-1.3.1/
+ ruby setup.rb --no-rdoc --no-ri
+ ln -s /usr/bin/gem1.8 /usr/bin/gem
+ gem source -a http://ec2-us-east-mirror.rightscale.com/rubygems/archive/latest/
+ gem source -r http://mirror.rightscale.com
+ gem install --no-rdoc --no-ri xml-simple net-ssh net-sftp s3sync
+ updatedb
+
+ ## Add some links to keep things inline
+ ln -s /usr/lib/site_ruby/aes /usr/local/lib/site_ruby/1.8/aes
+ ln -s /usr/lib/site_ruby/ec2 /usr/local/lib/site_ruby/1.8/ec2
+ ln -s /usr/bin/env /bin/env
+
+ ## Insert 'ec2' as the cloud
+ echo "ec2" > /etc/rightscale.d/cloud
+
+ ## Enable root logins
+ echo "Enabling root logins..."
+ cp -f /home/ubuntu/.ssh/authorized_keys /root/.ssh/.
+
+ ## Remove the default sources.list becasue RightScale will create a better one anyways...
+ rm -f /etc/apt/sources.list.d/amazon.list
+
+ ## Remove this init script so that it does not run again
+ remove
+
+ ## Start the rightscale service
+ echo "Starting RightScale..."
+ /etc/init.d/rightscale start
+ echo "RightScale services started properly"
+
+}
+
+stop() {
+ exit 0
+}
+
+remove() {
+ my_name=`basename $0`
+ init_script_name=${my_name:3}
+ update-rc.d -f $init_script_name remove
+ rm -f /etc/init.d/$init_script_name
+}
+
+
+# See how we were called.
+case "$1" in
+ start)
+ start >>/var/log/install 2>&1
+ ;;
+ stop)
+ stop >>/var/log/install 2>&1
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop}"
+ exit 1
+esac
+
+exit $?