for #184 nginx deploys with config and for #186 supervisor runs at boot
authorBryan <btbonval@gmail.com>
Thu, 5 Dec 2013 05:28:21 +0000 (00:28 -0500)
committerBryan <btbonval@gmail.com>
Thu, 5 Dec 2013 05:28:21 +0000 (00:28 -0500)
Vagrantfile
confs/prod/supervisor [new file with mode: 0644]

index 33bfec90fb30bcfb1b760bd09576b2293ad467ba..b7f2b05a9de3f29cf8de908de49f7419f0355a75 100644 (file)
@@ -49,6 +49,27 @@ cp $SECRETPATH/filepicker.py.example $SECRETPATH/filepicker.py
 cp $SECRETPATH/static_s3.py.example $SECRETPATH/static_s3.py
 chown vagrant:vagrant $SECRETPATH/*.py
 
+cat > /etc/nginx/sites-available/karmaworld <<CONFIG
+server {
+    listen 80;
+    # don't do virtual hosting, handle all requests regardless of header
+    server_name "";
+    client_max_body_size 20M;
+
+    location / {
+        # pass traffic through to gunicorn
+        proxy_pass http://127.0.0.1:8000;
+    }
+}
+CONFIG
+rm /etc/nginx/sites-enabled/default
+ln -s /etc/nginx/sites-available/karmaworld /etc/nginx/sites-enabled/karmaworld
+sudo service nginx restart
+
+cp karmaworld/confs/prod/supervisor /etc/init.d
+chmod 755 /etc/init.d/supervisor
+update-rc.d supervisor defaults
+
 pip install fabric
 #su vagrant -c "cd karmaworld; fab here first_deploy"
 SCRIPT
diff --git a/confs/prod/supervisor b/confs/prod/supervisor
new file mode 100644 (file)
index 0000000..ddd5f7b
--- /dev/null
@@ -0,0 +1,146 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          supervisord-initscript
+# Required-Start:    $remote_fs $syslog $postgresql $rabbitmq-server
+# Required-Stop:     $remote_fs $syslog
+# Should-Start:      $nginx
+# Default-Start:     30 2 3 4 5
+# Default-Stop:      70 0 1 6
+# Short-Description: supervisord for KarmaWorld within a virtualenv
+# Description:       supervisord for KarmaWorld within a virtualenv
+### END INIT INFO
+
+# Modified by Bryan Bonvallet for FinalsClub Foundation
+# Original Author: Nicolas Kuttler
+# Original Script:
+# http://kuttler.eu/code/debian-init-script-virtualenv-gunicorn-django/
+#
+# Enable with update-rc.d gunicorn-example start 30 2 3 4 5 . stop 70 0 1 6 .
+# (parameters might not be necessary, test)
+
+# Do NOT "set -e"
+
+PROJECT=/var/www/karmaworld
+VIRTUALENV=$PROJECT
+CONF=$PROJECT/confs/prod/supervisord.conf
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/bin:/usr/bin
+USER=vagrant
+GROUP=vagrant
+# I am lazy and just call the init script gunicorn-project
+NAME=`basename $0`
+DESC=$NAME
+PIDFILE=$PROJECT/var/run/$NAME.pid
+CMD="supervisord -c $CONF"
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
+# and status_of_proc is working.
+. /lib/lsb/init-functions
+
+#
+# Function that starts the daemon/service
+#
+do_start() {
+  # Return
+  #   0 if daemon has been started
+  #   1 if daemon was already running
+  #   2 if daemon could not be started
+  if [ -e $PIDFILE ]; then
+    return 1
+  fi
+  cd $PROJECT
+  . $VIRTUALENV/bin/activate
+  $CMD
+  if [ $? = 0 ]; then
+    return 0
+  else
+    return 2
+  fi
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop() {
+  # Return
+  #   0 if daemon has been stopped
+  #   1 if daemon was already stopped
+  #   2 if daemon could not be stopped
+  #   other if a failure occurred
+  if [ -f $PIDFILE ]; then
+    PID=`cat $PIDFILE`
+    rm $PIDFILE
+    kill -15 $PID
+    if [ $? = 0 ]; then
+      return 0
+    else
+      return 2
+    fi
+  else
+    return 1
+  fi
+}
+
+do_reload() {
+  if [ -f $PIDFILE ]; then
+    PID=`cat $PIDFILE`
+    kill -HUP $PID
+    return $?
+  fi
+  return 2
+}
+
+case "$1" in
+  start)
+  [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+  do_start
+  case "$?" in
+    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+  esac
+  ;;
+  stop)
+  [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+  do_stop
+  case "$?" in
+    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+  esac
+  ;;
+  restart)
+  log_daemon_msg "Restarting $DESC" "$NAME"
+  do_stop
+  case "$?" in
+    0|1)
+    do_start
+    case "$?" in
+      0) log_end_msg 0 ;;
+      1) log_end_msg 1 ;; # Old process is still running
+      *) log_end_msg 1 ;; # Failed to start
+    esac
+    ;;
+    *)
+      # Failed to stop
+    log_end_msg 1
+    ;;
+  esac
+  ;;
+  reload)
+  log_daemon_msg "Reloading $DESC" "$NAME"
+  do_reload
+  case "$?" in
+    0) log_end_msg 0 ;;
+    *) log_end_msg 1 ;;
+  esac
+  ;;
+  *)
+  echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
+  exit 3
+  ;;
+esac
+
+: