Skip to content

Instantly share code, notes, and snippets.

@bmount
Created September 12, 2014 05:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bmount/afbe03a884d52a7f7839 to your computer and use it in GitHub Desktop.
Save bmount/afbe03a884d52a7f7839 to your computer and use it in GitHub Desktop.
#!/bin/bash
usage()
{
cat << EOF
usage: $0 options
Everything except --help takes a single dash.
OPTIONS:
-h this message
-base install build-essential
-ssh enable passwordless ssh
-apphost target app server host (default localhost)
-appuser user on app host (default \$USER)
-dbhost target database host (default localhost)
-dbuser user on db server (default \$USER)
-redis install redis latest stable from source w/ init on 6379
-postgres install from postgresql.org apt with postgis
-node install node.js
-phantom install phantomjs
EOF
}
while [ "$#" -gt "0" ]
do
case $1 in
-h)
usage
exit 1
;;
--help)
usage
exit 1
;;
-dbhost)
shift
DBHOST=$1
;;
-apphost)
shift
APPHOST=$1
;;
-dbuser)
shift
DBUSER=$1
;;
-appuser)
shift
APPUSER=$1
;;
-ssh)
WSSH=1
;;
-redis)
WREDIS=1
;;
-node)
WNODE=1
;;
-phantom)
WPHANTOM=1
;;
-base)
WBASE=1
;;
*)
usage
exit
;;
esac
shift
done
DBHOST="${DBHOST:=localhost}"
APPHOST="${APPHOST:=localhost}"
DBUSER="${DBUSER:=$USER}"
APPUSER="${APPUSER:=$USER}"
read -p "Proceed with users:
DBUSER: $DBUSER
APPUSER: $APPUSER
DBHOST: $DBHOST
APPHOST: $APPHOST
(y/n)?
-> " choice
case "$choice" in
y|Y ) echo "ok..";;
n|N ) exit;;
* ) exit;;
esac
if [ ! -z "$WSSH" ]; then
ssh-copy-id $DBUSER@$DBHOST
ssh-copy-id $APPUSER@$APPHOST
fi
if [ ! -z "$WBASE" ]; then
ssh $APPUSER@$APPHOST "sudo apt-get -y update"
ssh $APPUSER@$APPHOST "sudo apt-get -y install build-essential"
ssh $APPUSER@$APPHOST "sudo apt-get -y install git"
fi
if [ ! -z "$WPOSTGRES" ]; then
ssh $DBUSER@$DBHOST <<'INSTALLPOSTGRES'
echo 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main' > /tmp/pgdg.list
sudo mv /tmp/pgdg.list /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get -y update
sudo apt-get -y install postgresql-9.3-postgis-2.1
sudo apt-get -y install postgresql-server-dev-9.3
INSTALLPOSTGRES
fi
if [ ! -z "$WREDIS" ]; then
ssh $APPUSER@$APPHOST <<'INSTALLREDIS'
cd /tmp
wget http://download.redis.io/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable
make
sudo make install
cd utils
sudo ./install_server.sh
INSTALLREDIS
fi
if [ ! -z "$WNODE" ]; then
ssh $APPUSER@$APPHOST <<'INSTALLNODE'
cd /tmp
wget http://nodejs.org/dist/v0.10.28/node-v0.10.28.tar.gz
tar xzf node-v0.10.28.tar.gz
cd node-v0.10.28
./configure
make
sudo make install
INSTALLNODE
fi
if [ ! -z "$WPHANTOM" ]; then
ssh $APPHOST <<'INSTALLPHANTOMJS'
cd /tmp
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2
cd phantomjs-1.9.7-linux-x86_64
sudo mv bin/phantomjs /usr/local/bin/
INSTALLPHANTOMJS
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment