3.3 KiB
layout | title |
---|---|
documentation | 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.
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.
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.
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.
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.