97 lines
3.3 KiB
Markdown
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.
|