summaryrefslogtreecommitdiff
path: root/Vagrantfile
diff options
context:
space:
mode:
authorAustin Seipp <austin@well-typed.com>2014-03-22 15:21:40 -0500
committerAustin Seipp <austin@well-typed.com>2014-03-22 19:39:43 -0500
commitace7477690752d85defd71c083863f14db241350 (patch)
treebb0a63dc898e1b74d154ae8052cec72a27742e32 /Vagrantfile
parentac24bf45258af701cdd67423d6107357f27bbedf (diff)
downloadhaskell-ace7477690752d85defd71c083863f14db241350.tar.gz
Add a simplistic Vagrantfile with bootstrapping
This adds a simple Vagrantfile to the root directory, which you can use to easily spin up RHEL/Debian/Ubuntu virtual machine in seconds to test GHC. For example, from the root of the GHC tree, you can say: $ vagrant up ubuntu1204-amd64 $ vagrant ssh ubuntu1204-amd64 This will give you access to a provisioned Ubuntu 12.04 virtual machine with all the necessary GHC dependencies installed (modulo a few things). Debian 7/CentOS 6.5/Ubuntu 12.04 only for now, in amd64/i386 configurations. In the future I plan to at least add FreeBSD and NixOS boxes where possible. Improvements are necessary of course. By default a box is given 4GB of RAM and 2 cores, and resolves DNS entries by routing through the host DNS configuration. Do not run 'vagrant up' unless you have lots of RAM as it will spawn *every* virtual machine. Hopefully, this should make it far easier for contributors to get started eventually. Signed-off-by: Austin Seipp <austin@well-typed.com>
Diffstat (limited to 'Vagrantfile')
-rw-r--r--Vagrantfile50
1 files changed, 50 insertions, 0 deletions
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644
index 0000000000..9c116011a8
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,50 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+MACHINES =
+ { "ubuntu1204-i386" =>
+ { :box => "chef/ubuntu-12.04-i386",
+ :provision => "vagrant/bootstrap-deb.sh"
+ },
+ "ubuntu1204-amd64" =>
+ { :box => "chef/ubuntu-12.04",
+ :provision => "vagrant/bootstrap-deb.sh"
+ },
+ "centos65-i386" =>
+ { :box => "chef/centos-6.5-i386",
+ :provision => "vagrant/bootstrap-rhel.sh"
+ },
+ "centos65-amd64" =>
+ { :box => "chef/centos-6.5",
+ :provision => "vagrant/bootstrap-rhel.sh"
+ },
+ "debian74-i386" =>
+ { :box => "chef/debian-7.4-i386",
+ :provision => "vagrant/bootstrap-deb.sh"
+ },
+ "debian74-amd64" =>
+ { :box => "chef/debian-7.4",
+ :provision => "vagrant/bootstrap-deb.sh"
+ }
+ }
+
+VAGRANTFILE_API_VERSION = "2"
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+ MACHINES.each_pair do |name, opts|
+ config.vm.define name do |c|
+ c.vm.box = opts[:box]
+ c.vm.network "public_network"
+ c.vm.provision :shell, :path => opts[:provision]
+ c.vm.provider "virtualbox" do |vb|
+ vb.gui = false; vb.memory = 4096; vb.cpus = 2
+ vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
+ end
+ c.vm.provider "vmware_workstation" do |vb|
+ vb.gui = false; vb.vmx["memsize"] = "4096"; vb.vmx["numvcpus"] = "2"
+ end
+ c.vm.provider "vmware_fusion" do |vb|
+ vb.gui = false; vb.vmx["memsize"] = "4096"; vb.vmx["numvcpus"] = "2"
+ end
+ end
+ end
+end