vagrant/docs/changes/changes_03x_04x.md

97 lines
3.3 KiB
Markdown

---
layout: documentation
title: Changes - 0.3.x to 0.4.x
---
# Changes in Vagrant 0.4.x
## VirtualBox 3.2 Support
Vagrant now supports VirtualBox 3.2.x in addition to the 3.1.x series.
No configuration is necessary; Vagrant will automatically determine which
VirtualBox version is running and use the correct API calls.
## Multi-VM Environments
Vagrant can now automate and manage multiple VMs to represent a single
project. This allows developers to model more complex server setups on
their development machine. A very basic multi-VM Vagrantfile is shown
below:
{% highlight ruby %}
Vagrant::Config.run do |config|
config.vm.define :web do |web_config|
web_config.vm.box = "web"
web_config.vm.forward_port("http", 80, 8080)
end
config.vm.define :db do |db_config|
db_config.vm.box = "db"
db_config.vm.forward_port("db", 3306, 3306)
end
end
{% endhighlight %}
For more information, please read the page on [multi-VM environments](/docs/multivm.html).
## Host Only Networking
Prior to 0.4.x, Vagrant could only forward ports via a NAT connection.
Vagrant now allows VMs to specify a static IP for themselves, which
can be accessed on the host machine or any other VMs on the same
host only network. This feature can work hand in hand with the multi-VM
feature announced above to provide efficient internal networking between
VMs. An example of assigning a static IP to a VM is shown below:
{% highlight ruby %}
Vagrant::Config.run do |config|
config.vm.network("192.168.10.10")
end
{% endhighlight %}
For more information, read the page on [host only networking](/docs/host_only_networking.html).
## Automatic Port Collision Fixes
Since version 0.2.0, Vagrant has reported any potential port collisions
for forwarded ports. This was typically a rare occurence which only cropped
up when multiple Vagrant environments were running at the same time. With
the introduction of multi-VM support, port collision is now quite common.
To deal with this, Vagrant can now automatically resolve any port collisions
which are detected.
For an example and more information, please view the `config.vm.forward_port`
documentation on the [Vagrantfile page](/docs/vagrantfile.html#config-vm-forwardport).
## New Abstraction: Systems
"Systems" are a new abstraction within Vagrant which allow OS or system
specific behaviour such as shutdown or mounting folders to be defined within
a specific system class, which is then configured within the Vagrantfile.
Vagrant ships with a general Linux system which should cover the majority
of users and is the default system.
For more information, please read the [systems documentation](/docs/systems.html).
## Minor Changes
### `vagrant provision`
`vagrant provision` can now be called at any time to simply run the provisioning
scripts without having to reload the entire VM environment. There are certain
limitations to this command which are discussed further on the commands
documentation page.
### Relative Path Shared Folders
The host path for a shared folder can now be a relative path. This relative
path will be expanded relative to where the project Vagrantfile is. Example
below shows how the root shared folder is defined:
{% highlight ruby %}
config.vm.share_folder("v-root", "/vagrant", ".")
{% endhighlight %}
### Many Bug Fixes
As always, a handful of bugs have been fixed since Vagrant 0.3.0.