Commit ace74776 authored by Austin Seipp's avatar Austin Seipp
Browse files

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

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: default avatarAustin Seipp <>
parent ac24bf45
# -*- mode: ruby -*-
# vi: set ft=ruby :
{ "ubuntu1204-i386" =>
{ :box => "chef/ubuntu-12.04-i386",
:provision => "vagrant/"
"ubuntu1204-amd64" =>
{ :box => "chef/ubuntu-12.04",
:provision => "vagrant/"
"centos65-i386" =>
{ :box => "chef/centos-6.5-i386",
:provision => "vagrant/"
"centos65-amd64" =>
{ :box => "chef/centos-6.5",
:provision => "vagrant/"
"debian74-i386" =>
{ :box => "chef/debian-7.4-i386",
:provision => "vagrant/"
"debian74-amd64" =>
{ :box => "chef/debian-7.4",
:provision => "vagrant/"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
MACHINES.each_pair do |name, opts|
config.vm.define name do |c| = opts[:box] "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"]
c.vm.provider "vmware_workstation" do |vb|
vb.gui = false; vb.vmx["memsize"] = "4096"; vb.vmx["numvcpus"] = "2"
c.vm.provider "vmware_fusion" do |vb|
vb.gui = false; vb.vmx["memsize"] = "4096"; vb.vmx["numvcpus"] = "2"
apt-get update
apt-get build-dep -y ghc
yum update -y
yum install -y glibc-devel ncurses-devel gmp-devel autoconf automake libtool \
gcc make perl python ghc git docbook-utils docbook-utils-pdf docbook-style-xsl
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment