summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy McCurdy <andy@andymccurdy.com>2014-04-04 18:24:00 -0700
committerAndy McCurdy <andy@andymccurdy.com>2014-04-04 18:24:00 -0700
commit5c4f4967858227d517a82e77088147bb54c08dba (patch)
treeff220e600f8e894a57d6caaa7b7542a998ced9fb
parentc0ca9ad28382a7970c6f09fd7f7111110d95e779 (diff)
downloadredis-py-5c4f4967858227d517a82e77088147bb54c08dba.tar.gz
initial vagrant environment with working redis. need to install python next
-rw-r--r--.gitignore1
-rw-r--r--vagrant/Vagrantfile18
-rwxr-xr-xvagrant/bootstrap.sh4
-rwxr-xr-xvagrant/install_redis.sh34
-rw-r--r--vagrant/redis-override.conf1
-rwxr-xr-xvagrant/redis_init_script42
6 files changed, 100 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index adf82b0..c527c09 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ dist/
dump.rdb
/.tox
_build
+vagrant/.vagrant
diff --git a/vagrant/Vagrantfile b/vagrant/Vagrantfile
new file mode 100644
index 0000000..37c321c
--- /dev/null
+++ b/vagrant/Vagrantfile
@@ -0,0 +1,18 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ # ubuntu 64bit image
+ config.vm.box = "hashicorp/precise64"
+
+ # map the root of redis-py to /home/vagrant/redis-py
+ config.vm.synced_folder "../", "/home/vagrant/redis-py"
+
+ # install the redis server
+ config.vm.provision :shell, :path => "bootstrap.sh"
+ config.vm.provision :shell, :path => "install_redis.sh"
+
+end
diff --git a/vagrant/bootstrap.sh b/vagrant/bootstrap.sh
new file mode 100755
index 0000000..a5a0d2c
--- /dev/null
+++ b/vagrant/bootstrap.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+# need make to build redis
+sudo apt-get install make
diff --git a/vagrant/install_redis.sh b/vagrant/install_redis.sh
new file mode 100755
index 0000000..92e400c
--- /dev/null
+++ b/vagrant/install_redis.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+pushd /home/vagrant
+
+# if there's an existing redis running (started at boot?) kill it
+if [ -a /etc/init.d/redis_master ]
+ then
+ sudo /etc/init.d/redis_master stop
+ sudo update-rc.d -f redis_master remove
+ sudo rm -f /etc/init.d/redis_master
+fi
+
+# delete any previous provisioned redis
+rm -rf /home/vagrant/redis
+rm -rf /home/vagrant/redis-2.8.8.tar.gz
+
+# download, unpack and build redis in /home/vagrant/redis
+wget http://download.redis.io/releases/redis-2.8.8.tar.gz
+tar zxvf redis-2.8.8.tar.gz
+mv redis-2.8.8 /home/vagrant/redis
+cd /home/vagrant/redis
+make
+
+# include our overridden config options
+cat /home/vagrant/redis-py/vagrant/redis-override.conf >> /home/vagrant/redis/redis.conf
+
+# link to our init.d script
+sudo cp /home/vagrant/redis-py/vagrant/redis_init_script /etc/init.d/redis_master
+# and tell update-rc about it
+sudo update-rc.d redis_master defaults 99
+# and finally start it
+sudo /etc/init.d/redis_master start
+
+popd
diff --git a/vagrant/redis-override.conf b/vagrant/redis-override.conf
new file mode 100644
index 0000000..b8ce090
--- /dev/null
+++ b/vagrant/redis-override.conf
@@ -0,0 +1 @@
+daemonize yes
diff --git a/vagrant/redis_init_script b/vagrant/redis_init_script
new file mode 100755
index 0000000..aaa5a9e
--- /dev/null
+++ b/vagrant/redis_init_script
@@ -0,0 +1,42 @@
+#!/bin/sh
+#
+# Simple Redis init.d script conceived to work on Linux systems
+# as it does use of the /proc filesystem.
+
+REDISPORT=6379
+EXEC=/home/vagrant/redis/src/redis-server
+CLIEXEC=/home/vagrant/redis/src/redis-cli
+
+PIDFILE=/var/run/redis.pid
+CONF=/home/vagrant/redis/redis.conf
+
+case "$1" in
+ start)
+ if [ -f $PIDFILE ]
+ then
+ echo "$PIDFILE exists, process is already running or crashed"
+ else
+ echo "Starting Redis server..."
+ $EXEC $CONF
+ fi
+ ;;
+ stop)
+ if [ ! -f $PIDFILE ]
+ then
+ echo "$PIDFILE does not exist, process is not running"
+ else
+ PID=$(cat $PIDFILE)
+ echo "Stopping ..."
+ $CLIEXEC -p $REDISPORT shutdown
+ while [ -x /proc/${PID} ]
+ do
+ echo "Waiting for Redis to shutdown ..."
+ sleep 1
+ done
+ echo "Redis stopped"
+ fi
+ ;;
+ *)
+ echo "Please use start or stop as first argument"
+ ;;
+esac