summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbenoitc <bchesneau@gmail.com>2013-05-29 14:53:55 +0200
committerbenoitc <bchesneau@gmail.com>2013-05-29 14:53:55 +0200
commitf15f54d56149d3119ca2c06bcd63991071fbbe40 (patch)
tree584d61d3c1f73dd6bb159bf2055e6cc12c12f641
parent86dd4eadf7b96ecb861e94ff4570248b2936a556 (diff)
downloadcouchdb-f15f54d56149d3119ca2c06bcd63991071fbbe40.tar.gz
Add Vagrantfile
This patch allows us to develop and test couchdb using vagrant (http://www.vagrantup.com) . Since we don't have any good debian packaging for now this image is only useful for developers or those who want to use latest couchdb version. To use it run the following commad: $ vagrant up $ vagrant ssh $ cd /vagrant then you can play with the code and build your own distribution of couch. This image is supporting lxc, ec2 and rackspace providers for vagrant.
-rw-r--r--Vagrantfile70
1 files changed, 70 insertions, 0 deletions
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644
index 000000000..465d5a67f
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,70 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+BOX_NAME = ENV['BOX_NAME'] || "ubuntu"
+BOX_URI = ENV['BOX_URI'] || "http://files.vagrantup.com/precise64.box"
+AWS_REGION = ENV['AWS_REGION'] || "us-east-1"
+AWS_AMI = ENV['AWS_AMI'] || "ami-d0f89fb9"
+
+Vagrant::Config.run do |config|
+ # Setup virtual machine box. This VM configuration code is always executed.
+ config.vm.box = BOX_NAME
+ config.vm.box_url = BOX_URI
+
+ # Install couchdb dependencies if deployment was not done
+ if Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty?
+ # install build-essential
+ pkg_cmd = "apt-get update -qq; apt-get install -q -y build-essential git "
+ "autoconf autoconf-archive gnu-standards help2man textinfo; "
+
+ # Install erlang
+ pkg_cmd << "apt-get install -q -y erlang-base-hipe erlang-dev " \
+ "erlang-manpages erlang-eunit erlang-nox erlang-xmerl erlang-inets; "
+
+ # couchdb developper dependencies
+ pkg_cmd << "apt-get install -q -y libmozjs185-dev libicu-dev " \
+ "curl libcurl4-gnutls-dev libtool; "
+
+ # doc dependencies
+ pkg_cmd << "apt-get install -q -y apt-get install -q -y help2man " \
+ "textinfo python-sphix python-pip; " \
+ "pip install -U pygments; "
+
+ config.vm.provision :shell, :inline => pkg_cmd
+ end
+end
+
+
+# Providers were added on Vagrant >= 1.1.0
+Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config|
+ config.vm.provider :aws do |aws, override|
+ aws.access_key_id = ENV["AWS_ACCESS_KEY_ID"]
+ aws.secret_access_key = ENV["AWS_SECRET_ACCESS_KEY"]
+ aws.keypair_name = ENV["AWS_KEYPAIR_NAME"]
+ override.ssh.private_key_path = ENV["AWS_SSH_PRIVKEY"]
+ override.ssh.username = "ubuntu"
+ aws.region = AWS_REGION
+ aws.ami = AWS_AMI
+ aws.instance_type = "t1.micro"
+ end
+
+ config.vm.provider :rackspace do |rs|
+ config.ssh.private_key_path = ENV["RS_PRIVATE_KEY"]
+ rs.username = ENV["RS_USERNAME"]
+ rs.api_key = ENV["RS_API_KEY"]
+ rs.public_key_path = ENV["RS_PUBLIC_KEY"]
+ rs.flavor = /512MB/
+ rs.image = /Ubuntu/
+ end
+
+ config.vm.provider :virtualbox do |vb|
+ config.vm.box = BOX_NAME
+ config.vm.box_url = BOX_URI
+ end
+
+ config.vm.provider :lxc do |lxc|
+ config.vm.box = BOX_NAME
+ config.vm.box_url = BOX_URI
+ lxc.customize 'cgroup.memory.limit_in_bytes', '1024M'
+ end
+end