Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
27315 commits behind, 1 commit ahead of the upstream repository.
  • Austin Seipp's avatar
    ace74776
    Add a simplistic Vagrantfile with bootstrapping · ace74776
    Austin Seipp authored
    
    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: default avatarAustin Seipp <austin@well-typed.com>
    ace74776
    History
    Add a simplistic Vagrantfile with bootstrapping
    Austin Seipp authored
    
    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: default avatarAustin Seipp <austin@well-typed.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Vagrantfile 1.52 KiB
# -*- 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