Skip to content

Vagrantfiles for self-contained development/test environments.

License

Notifications You must be signed in to change notification settings

barmazu/vagrant-templates

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vagrant Templates

The point of this repository is to hold Vagrantfile templates that I personally use as starting points for self-contained development/testing environments.

These are not minimal templates. They include configuration tweaks, workarounds for common issues that I bumped into, and provisioning scripts that install a few extra packages and customize the shell environment a bit. Check the appropriate Vagrantfile and the vagrant/provision.sh script, they should be fairly easy to modify. Some usage examples:

  • Use them as is to spin up readily usable VMs where you can log into and test random stuff.
  • Add the necessary steps to provision your application inside the VM, maybe removing some redundant things.
  • Just use them as a reference to write your own minimal environments with tweaked settings.

These templates usually support "official" vagrant boxes, but some default to my own (mostly bento-based) boxes at app.vagrantup.com/carlosefr for convenience (i.e. pre-installed guest additions).

Dependencies

You'll need VirtualBox and Vagrant. Some templates require the vagrant-vbguest plugin installed (to share folders with the host) and may also require the vagrant-reload plugin (to allow the VM to be immediately rebooted after provisioning).

Notes

Local Customization

The default VM size is defined in the Vagrantfile but, sometimes, it's useful to locally override these settings without affecting other users of the same repo. Do this by creating a .vagrant_size.json next to the Vagrantfile with the following (example) contents:

{
    "cpus": 2,
    "memory": 4096
}

Guest Additions

By default, the vagrant-vbguest plugin tries to install/update the VirtualBox Guest Additions on every vagrant up. I find this annoying and recommend you to disable this behavior by adding something like the following to your ~/.vagrant.d/Vagrantfile:

Vagrant.configure(2) do |config|
    ...

    if Vagrant.has_plugin?("vagrant-vbguest")
        config.vbguest.auto_update = false
        config.vbguest.allow_downgrade = false
    end

    ...
end

The templates that need to install/update the VirtualBox Guest Additions already (re)enable auto_update explicitly.

Clock Drift

On older hosts the (VM) clocks may drift quite significantly with paravirtualization enabled, and I never quite figured out how to fix it. If you notice this happening, just add the following to your ~/.vagrant.d/Vagrantfile:

Vagrant.configure(2) do |config|
    ...

    config.vm.provider "virtualbox" do |v, override|
        v.customize ["modifyvm", :id, "--paravirtprovider", "legacy"]
    end

    ...
end

About

Vagrantfiles for self-contained development/test environments.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 98.2%
  • Vim Script 1.8%