144 lines
5.9 KiB
Markdown
144 lines
5.9 KiB
Markdown
|
---
|
||
|
page_title: "Vagrant 1.4"
|
||
|
title: "Vagrant 1.4"
|
||
|
author: Mitchell Hashimoto
|
||
|
author_url: https://github.com/mitchellh
|
||
|
---
|
||
|
|
||
|
Vagrant 1.4 has been released! This is a major new release of Vagrant
|
||
|
with an incredible amount of new features, improvements, and bug fixes.
|
||
|
|
||
|
First, I have to thank the new core committers of Vagrant for building
|
||
|
many of the incredible features and improvements that made it into this release:
|
||
|
[Fabio Rehm](https://github.com/fgrehm),
|
||
|
[Paul Hinze](https://github.com/phinze),
|
||
|
and [Teemu Matilainen](https://github.com/tmatilai).
|
||
|
|
||
|
Vagrant 1.4 introduces no Vagrantfile backwards incompatibilities so
|
||
|
it can be considered a drop-in upgrade for prior versions. Vagrant environments
|
||
|
also do not need to be destroyed prior to upgrading.
|
||
|
|
||
|
There are a huge number of new features introduces in Vagrant 1.4,
|
||
|
and this blog post will attempt to cover the major ones. For all changes
|
||
|
see the [changelog](https://github.com/mitchellh/vagrant/blob/v1.4.0/CHANGELOG.md).
|
||
|
This blog post will cover:
|
||
|
|
||
|
* [Docker provisioner](/blog/vagrant-1-4.html#docker)
|
||
|
* [Machine-readable output](/blog/vagrant-1-4.html#machine-readable)
|
||
|
* [Enforcing a Vagrant version from your Vagrantfile](/blog/vagrant-1-4.html#vagrant-version)
|
||
|
* [Synced folder plugins](/blog/vagrant-1-4.html#synced-folder-plugins)
|
||
|
* [Minor improvements](/blog/vagrant-1-4.html#minor-improvements)
|
||
|
|
||
|
And we'll conclude by talking about
|
||
|
[plans for Vagrant 1.5 and beyond](/blog/vagrant-1-4.html#vagrant-1-5).
|
||
|
|
||
|
READMORE
|
||
|
|
||
|
<a id="docker"></a>
|
||
|
### Docker Provisioner
|
||
|
|
||
|
Vagrant 1.4 introduces a [Docker provisioner](http://docs.vagrantup.com/v2/provisioning/docker.html)
|
||
|
to automatically install Docker, pull Docker containers, and configure
|
||
|
certain containers to run on boot.
|
||
|
|
||
|
As with all provisioners, the Docker provisioner can be used along with
|
||
|
all the other provisioners Vagrant has in order to setup your working
|
||
|
environment the best way possible. For example, perhaps you use Puppet to
|
||
|
install services like databases or web servers but use Docker to house
|
||
|
your application runtime. You can use the Puppet provisioner along
|
||
|
with the Docker provisioner.
|
||
|
|
||
|
See the documentation for usage examples and a complete option reference.
|
||
|
|
||
|
<a id="machine-readable"></a>
|
||
|
### Machine-Readable Output
|
||
|
|
||
|
Vagrant now has [machine-readable output](http://docs.vagrantup.com/v2/cli/machine-readable.html) for a handful of commands. The machine-readable output makes it much
|
||
|
easier to script Vagrant usage.
|
||
|
|
||
|
Note that not very many features of Vagrant output useful machine-readable
|
||
|
information yet. This is just the first version with this feature and we
|
||
|
plan to add more information as it is requested. If you'd like some
|
||
|
data in the machine-readable output, please open an issue on the
|
||
|
Vagrant GitHub project requesting it!
|
||
|
|
||
|
<a id="vagrant-version"></a>
|
||
|
### Enforcing a Vagrant Version
|
||
|
|
||
|
You now use the `Vagrant.require_version` helper in your Vagrantfiles
|
||
|
to enforce that only certain versions of Vagrant be used to run that
|
||
|
environment.
|
||
|
|
||
|
This helps avoid unexpected surprises with backwards incompatibilities
|
||
|
or plugin incompatibilities with your Vagrantfiles. The version
|
||
|
constraints that can be specified are very powerful and easy to use.
|
||
|
|
||
|
See the [documentation for more information](http://docs.vagrantup.com/v2/vagrantfile/vagrant_version.html).
|
||
|
|
||
|
<a id="synced-folder-plugins"></a>
|
||
|
### Synced Folder Plugins
|
||
|
|
||
|
Synced folder implementations can now be implemented as standalone
|
||
|
plugins. For example, NFS synced folders are implemented as a
|
||
|
[plugin within the core of Vagrant](https://github.com/mitchellh/vagrant/tree/master/plugins/synced_folders).
|
||
|
|
||
|
The ability to create new synced folder implementations opens the
|
||
|
door to very easily try new techniques for faster file syncing
|
||
|
to and from the guest environment, or more appropriate file syncing
|
||
|
mechanisms.
|
||
|
|
||
|
Some new synced folder implementations are already in the works:
|
||
|
rsync, scp, NFS client (host is the client), etc.
|
||
|
|
||
|
Writing synced folder plugins is not yet documented, since the plugin
|
||
|
development documentation is undergoing a large revamp at the moment.
|
||
|
See the core of Vagrant for examples (such as NFS).
|
||
|
|
||
|
<a id="minor-improvements"></a>
|
||
|
### Minor Improvements
|
||
|
|
||
|
In addition to all the features above, there are many more features
|
||
|
as well as many more minor improvements made to Vagrant. This section
|
||
|
documents just a handful.
|
||
|
|
||
|
**Box downloading will resume if interrupted** rather than starting
|
||
|
from scratch. This should help in cases where internet is not reliable
|
||
|
and you're downloading large boxes.
|
||
|
|
||
|
**Box checksums** can be provided both in the Vagrantfile and on the
|
||
|
command-line when adding boxes. Vagrant will verify the checksum with the
|
||
|
downloaded contents.
|
||
|
|
||
|
**NFS on VirtualBox no longer requires a static IP** and now works
|
||
|
with private networks using DHCP, as well.
|
||
|
|
||
|
**Running multiple "vagrant up" commands in parallel with VirtualBox**
|
||
|
is now safe. This is a boon for CI or automated environments.
|
||
|
|
||
|
**Multiple SSH keys** can be specified in your Vagrantfile, allowing
|
||
|
you to replace the insecure Vagrant key with a more secure key during
|
||
|
provisioning.
|
||
|
|
||
|
And so much more. See the complete
|
||
|
[changelog](https://github.com/mitchellh/vagrant/blob/v1.4.0/CHANGELOG.md)
|
||
|
for the full list.
|
||
|
|
||
|
<a id="vagrant-1-5"></a>
|
||
|
### Vagrant 1.5 and Beyond
|
||
|
|
||
|
There are some big plans for the future of Vagrant. Work on Vagrant 1.5
|
||
|
will begin right away and we have some great things planned.
|
||
|
|
||
|
Without giving away specific features, our areas of focus will be
|
||
|
box versioning, Windows guests, more features that plugins can hook into,
|
||
|
more synced folder implementations, more features for provisioners (such
|
||
|
as Chef installing itself).
|
||
|
|
||
|
Beyond that, it is time to start shipping more providers out of the
|
||
|
box with Vagrant. Work will begin on pulling the Vagrant AWS integration
|
||
|
into the core distribution -- to start -- so that you can use Vagrant with
|
||
|
AWS (and other providers) right after installing it and without having
|
||
|
to juggle plugin versions.
|
||
|
|
||
|
Onwards and upwards towards Vagrant 2.0.
|