Created
September 12, 2014 05:58
-
-
Save bmount/afbe03a884d52a7f7839 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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