Vagrant v1.6.0 Release Notes

Release Date: 2014-05-06 // about 10 years ago
  • BACKWARDS INCOMPATIBILITIES:

    • Deprecated: halt_timeout and halt_check_interval settings for SmartOS, Solaris, and Solaris11 guests. These will be fully removed in 1.7. A warning will be shown if they're in use in 1.6.

    ๐Ÿ”‹ FEATURES:

    • New guest: Windows. Vagrant now fully supports Windows as a guest VM. WinRM can be used for communication (or SSH), and the shell provisioner, Chef, and Puppet all work with Windows VMs.
    • New command: global-status. This command shows the state of every created Vagrant environment on the system for that logged in user.
    • New command: rdp. This command connects to the running machine via the Remote Desktop Protocol.
    • New command: version. This outputs the currently installed version as well as the latest version of Vagrant available.
    • New provider: Docker. This provider will back your development environments with Docker containers. If you're not on Linux, it will automatically spin up a VM for you on any provider. You can even specify a specific Vagrantfile to use as the Docker container host.
    • Control Vagrant environments from any directory. Using the UUIDs given in vagrant global-status, you can issue commands from anywhere on your machine, not just that environment's directory. Example: vagrant destroy UUID from anywhere.
    • Can now specify a post_up_message in your Vagrantfile that is shown after a vagrant up. This is useful for putting some instructions of how to use the development environment.
    • Can configure provisioners to run "once" or "always" (defaults to "once"), so that subsequent vagrant up or reload calls will always run a provisioner. [GH-2421]
    • Multi-machine environments can specify an "autostart" option (default to true). vagrant up starts all machines that have enabled autostart.
    • Vagrant is smarter about choosing a default provider. If VAGRANT_DEFAULT_PROVIDER is set, it still takes priority, but otherwise Vagrant chooses a "best" provider.

    ๐Ÿ‘Œ IMPROVEMENTS:

    • core: Vagrant locks machine access to one Vagrant process at a time. This will protect against two simultaneous up actions happening on the same environment.
    • core: Boxes can be compressed with LZMA now as well.
    • commands/box/remove: Warns if the box appears to be in use by an environment. Can be forced with --force.
    • commands/destroy: Exit codes changes. 0 means everything succeeded. 1 means everything was declined. 2 means some were declined. [GH-811]
    • commands/destroy: Doesn't require box to exist anymore. [GH-1629]
    • commands/init: force flag. [GH-3564]
    • commands/init: flag for minimal Vagrantfile creation (no comments). [GH-3611]
    • commands/rsync-auto: Picks up and syncs provisioner folders if provisioners are backed by rsync.
    • commands/rsync-auto: Detects when new synced folders were added and warns user they won't be synced until vagrant reload.
    • commands/ssh-config: Works without a target in multi-machine envs [GH-2844]
    • guests/freebsd: Support for virtio interfaces. [GH-3082]
    • guests/openbsd: Support for virtio interfaces. [GH-3082]
    • guests/redhat: Networking works for upcoming RHEL7 release. [GH-3643]
    • providers/hyperv: Implement vagrant ssh -c support. [GH-3615]
    • provisioners/ansible: Support for Ansible Vault. [GH-3338]
    • provisioners/ansible: Show Ansible command executed. [GH-3628]
    • provisioners/salt: Colorize option. [GH-3603]
    • provisioners/salt: Ability to specify log level. [GH-3603]
    • synced_folders: nfs: Improve sudo commands used to make them sudoers friendly. Examples in docs. [GH-3638]

    ๐Ÿ› BUG FIXES:

    • core: Adding a box from a network share on Windows works again. [GH-3279]
    • commands/plugin/install: Specific versions are now locked in.
    • commands/plugin/install: If insecure RubyGems.org is specified as a source, use that. [GH-3610]
    • commands/rsync-auto: Interrupt exits properly. [GH-3552]
    • commands/rsync-auto: Run properly on Windows. [GH-3547]
    • communicators/ssh: Detect if config.ssh.shell is invalid. [GH-3040]
    • guests/debian: Can set hostname if hosts doesn't contain an entry already for 127.0.1.1 [GH-3271]
    • guests/linux: For read_ip_address capability, set LANG=en so it works on international systems. [GH-3029]
    • providers/virtualbox: VirtualBox detection works properly again on Windows when the VBOX_INSTALL_PATH has multiple elements. [GH-3549]
    • providers/virtualbox: Forcing MAC address on private network works properly again. [GH-3588]
    • provisioners/chef-solo: Fix Chef version checking to work with prerelease versions. [GH-3604]
    • provisioners/salt: Always copy keys and configs on provision. [GH-3536]
    • provisioners/salt: Install args should always be present with bootstrap.
    • provisioners/salt: Overwrite keys properly on subsequent provisions [GH-3575]
    • provisioners/salt: Bootstrap uses raw GitHub URL rather than subdomain. [GH-3583]
    • synced_folders/nfs: Acquires a process-level lock so exports don't collide with Vagrant running in parallel.
    • synced_folders/nfs: Implement usability check so that hosts that don't support NFS get an error earlier. [GH-3625]
    • synced_folders/rsync: Add UserKnownHostsFile option to not complain. [GH-3511]
    • synced_folders/rsync: Proxy command is used properly if set. [GH-3553]
    • synced_folders/rsync: Owner/group settings are respected. [GH-3544]
    • synced_folders/smb: Passwords with symbols work. [GH-3642]

    ๐Ÿ”Œ PLUGIN AUTHOR CHANGES:

    • New host capability: "rdp_client". This capability gets the RDP connection info and must launch the RDP client on the system.
    • core: The "Call" middleware now merges the resulting middleware stack into the current stack, rather than running it as a separate stack. The result is that ordering is preserved.
    • core: The "Message" middleware now takes a "post" option that will output the message on the return-side of the middleware stack.
    • core: Forwarded port collision repair works when Vagrant is run in parallel with other Vagrant processes. [GH-2966]
    • provider: Providers can now specify that boxes are optional. This lets you use the provider without a config.vm.box. Useful for providers like AWS or Docker.
    • provider: A new class-level usable? method can be implemented on the provider implementation. This returns or raises an error when the provider is not usable (i.e. VirtualBox isn't installed for VirtualBox)
    • synced_folders: New "disable" method for removing synced folders from a running machine.