| 1 | # -*- mode: ruby -*-
 | 
| 2 | # vi: set ft=ruby :
 | 
| 3 | 
 | 
| 4 | # All Vagrant configuration is done below. The "2" in Vagrant.configure
 | 
| 5 | # configures the configuration version (we support older styles for
 | 
| 6 | # backwards compatibility). Please don't change it unless you know what
 | 
| 7 | # you're doing.
 | 
| 8 | Vagrant.configure(2) do |config|
 | 
| 9 |   # Config file: https://docs.vagrantup.com.
 | 
| 10 |   # Search for boxes at https://atlas.hashicorp.com/search.
 | 
| 11 | 
 | 
| 12 |   config.vm.define "arch" do |c|
 | 
| 13 |     c.vm.box = "archlinux/archlinux"
 | 
| 14 |   end
 | 
| 15 | 
 | 
| 16 |   # NOTE: This box uses rsync for some reason.  Have to do 'vagrant halt
 | 
| 17 |   # centos' and 'vagrant up centos' to refresh /vagrant.
 | 
| 18 | 
 | 
| 19 |   # https://github.com/mitchellh/vagrant/issues/6940
 | 
| 20 |   config.vm.define "centos" do |c|
 | 
| 21 |     c.vm.box = "centos/7"
 | 
| 22 |   end
 | 
| 23 | 
 | 
| 24 |   # 32-bit architecture.
 | 
| 25 |   config.vm.define "ubuntu32" do |c|
 | 
| 26 |     c.vm.box = "puppetlabs/ubuntu-16.04-32-puppet"
 | 
| 27 |   end
 | 
| 28 | 
 | 
| 29 |   # Old 32-bit box.  Testing both old libc and 32-bit architecture.
 | 
| 30 |   config.vm.define "precise32" do |c|
 | 
| 31 |     c.vm.box = "hashicorp/precise32"
 | 
| 32 |   end
 | 
| 33 | 
 | 
| 34 |   # Hm I can't get this to work, even with conflicting instructions here:
 | 
| 35 |   # https://app.vagrantup.com/freebsd/boxes/FreeBSD-11.0-STABLE
 | 
| 36 |   # https://forums.freebsd.org/threads/52717/
 | 
| 37 |   # https://planet.freebsd.org/brd/2015/08/07/official-vagrant-freebsd-images/
 | 
| 38 |   config.vm.define "freebsd" do |c|
 | 
| 39 |     c.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
 | 
| 40 |     c.vm.box = "freebsd/FreeBSD-11.0-STABLE"
 | 
| 41 |     c.ssh.shell = "sh"
 | 
| 42 |     c.vm.base_mac = "080027D14C66"
 | 
| 43 | 
 | 
| 44 |     c.vm.provider :virtualbox do |vb|
 | 
| 45 |       vb.customize ["modifyvm", :id, "--memory", "1024"]
 | 
| 46 |       vb.customize ["modifyvm", :id, "--cpus", "1"]
 | 
| 47 |       vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
 | 
| 48 |       vb.customize ["modifyvm", :id, "--audio", "none"]
 | 
| 49 |       vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
 | 
| 50 |       vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
 | 
| 51 |     end
 | 
| 52 |   end
 | 
| 53 | 
 | 
| 54 |   # Disable automatic box update checking. If you disable this, then
 | 
| 55 |   # boxes will only be checked for updates when the user runs
 | 
| 56 |   # `vagrant box outdated`. This is not recommended.
 | 
| 57 |   # config.vm.box_check_update = false
 | 
| 58 | 
 | 
| 59 |   # Create a forwarded port mapping which allows access to a specific port
 | 
| 60 |   # within the machine from a port on the host machine. In the example below,
 | 
| 61 |   # accessing "localhost:8080" will access port 80 on the guest machine.
 | 
| 62 |   # config.vm.network "forwarded_port", guest: 80, host: 8080
 | 
| 63 | 
 | 
| 64 |   # Create a private network, which allows host-only access to the machine
 | 
| 65 |   # using a specific IP.
 | 
| 66 |   # config.vm.network "private_network", ip: "192.168.33.10"
 | 
| 67 | 
 | 
| 68 |   # Create a public network, which generally matched to bridged network.
 | 
| 69 |   # Bridged networks make the machine appear as another physical device on
 | 
| 70 |   # your network.
 | 
| 71 |   # config.vm.network "public_network"
 | 
| 72 | 
 | 
| 73 |   # Share an additional folder to the guest VM. The first argument is
 | 
| 74 |   # the path on the host to the actual folder. The second argument is
 | 
| 75 |   # the path on the guest to mount the folder. And the optional third
 | 
| 76 |   # argument is a set of non-required options.
 | 
| 77 |   # config.vm.synced_folder "../data", "/vagrant_data"
 | 
| 78 | 
 | 
| 79 |   # Provider-specific configuration so you can fine-tune various
 | 
| 80 |   # backing providers for Vagrant. These expose provider-specific options.
 | 
| 81 |   # Example for VirtualBox:
 | 
| 82 |   #
 | 
| 83 |   # config.vm.provider "virtualbox" do |vb|
 | 
| 84 |   #   # Display the VirtualBox GUI when booting the machine
 | 
| 85 |   #   vb.gui = true
 | 
| 86 |   #
 | 
| 87 |   #   # Customize the amount of memory on the VM:
 | 
| 88 |   #   vb.memory = "1024"
 | 
| 89 |   # end
 | 
| 90 |   #
 | 
| 91 |   # View the documentation for the provider you are using for more
 | 
| 92 |   # information on available options.
 | 
| 93 | 
 | 
| 94 |   # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
 | 
| 95 |   # such as FTP and Heroku are also available. See the documentation at
 | 
| 96 |   # https://docs.vagrantup.com/v2/push/atlas.html for more information.
 | 
| 97 |   # config.push.define "atlas" do |push|
 | 
| 98 |   #   push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
 | 
| 99 |   # end
 | 
| 100 | 
 | 
| 101 |   # Enable provisioning with a shell script. Additional provisioners such as
 | 
| 102 |   # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
 | 
| 103 |   # documentation for more information about their specific syntax and use.
 | 
| 104 |   # config.vm.provision "shell", inline: <<-SHELL
 | 
| 105 |   #   sudo apt-get update
 | 
| 106 |   #   sudo apt-get install -y apache2
 | 
| 107 |   # SHELL
 | 
| 108 | end
 |