vagrant/CHANGELOG.md

464 lines
23 KiB
Markdown

## 0.9.0 (unreleased)
- `config.vm.network` syntax changed so that the first argument is now the type
of argument. Previously where you had `config.vm.network "33.33.33.10"` you
should now put `config.vm.network :hostonly, "33.33.33.10"`. This is in order
to support bridged networking, as well.
- `config.vm.forward_port` no longer requires a name parameter.
- Bridged networking. `config.vm.network` with `:bridged` as the option will
setup a bridged network.
- `config.vm.customize` now takes a command to send to `VBoxManage`, so any
arbitrary command can be sent. The older style of passing a block no longer
works and Vagrant will give a proper error message if it notices this old-style
being used.
- Logging. The entire Vagrant source has had logging sprinkled throughout
to make debugging issues easier. To enable logging, set the VAGRANT_LOG
environmental variable to the log level you wish to see. By default,
logging is silent.
- `system` renamed to `guest` throughout the source. Any `config.vm.system`
configurations must be changed to `config.vm.guest`
- All Vagrant commands that take a VM name in a Multi-VM environment
can now be given a regular expression. If the name starts and ends with a "/"
then it is assumed to be a regular expression. [GH-573]
- Added a "--plain" flag to `vagrant ssh` which will cause Vagrant to not
perform any authentication. It will simply `ssh` into the proper IP and
port of the virtual machine.
- Removed Thor as a dependency for the command line interfaces. This resulted
in general speed increases across all command line commands.
- Linux uses `shutdown -h` instead of `halt` to hopefully more consistently
power off the system. [GH-575]
- Tweaks to SSH to hopefully be more reliable in coming up.
- Helpful error message when SCP is unavailable in the guest. [GH-568]
- Error message for improperly packaged box files. [GH-198]
- Copy insecure private key to user-owned directory so even
`sudo` installed Vagrant installations work. [GH-580]
- Provisioner stdout/stderr is now color coded based on stdout/stderr.
stdout is green, stderr is red. [GH-595]
- "--no-provision" once again works for certain commands. [GH-591]
- Resuming a VM from a saved state will show an error message if there
would be port collisions. [GH-602]
- `vagrant ssh -c` will now exit with the same exit code as the command
run. [GH-598]
- `vagrant ssh -c` will now send stderr to stderr and stdout to stdout
on the host machine, instead of all output to stdout.
- Vagrant can now be interrupted during the "importing" step.
## 0.8.10 (December 10, 2011)
- Revert the SSH tweaks made in 0.8.8. It affected stability
## 0.8.8 (December 1, 2011)
- Mount shared folders shortest to longest to avoid mounting
subfolders first. [GH-525]
- Support for basic HTTP auth in the URL for boxes.
- Solaris support for host only networks. [GH-533]
- `vagrant init` respects `Vagrant::Environment` cwd. [GH-528]
- `vagrant` commands will not output color when stdout is
not a TTY.
- Fix issue where `box_url` set with multiple VMs could cause issues. [GH-564]
- Chef provisioners no longer depend on a "v-root" share being
available. [GH-556]
- NFS should work for FreeBSD hosts now. [GH-510]
- SSH executed methods respect `config.ssh.max_tries`. [GH-508]
- `vagrant box add` now respects the "no_proxy" environmental variable.
[GH-502]
- Tweaks that should make "Waiting for VM to boot" slightly more
reliable.
- Add comments to Vagrantfile to make it detected as Ruby file for
`vi` and `emacs`. [GH-515]
- More correct guest addition version checking. [GH-514]
- Chef solo support on Windows is improved. [GH-542]
- Put encrypted data bag secret into `/tmp` by default so that
permissions are almost certainly guaranteed. [GH-512]
## 0.8.7 (September 13, 2011)
- Fix regression with remote paths from chef-solo. [GH-431]
- Fix issue where Vagrant crashes if `.vagrant` file becomes invalid. [GH-496]
- Issue a warning instead of an error for attempting to forward a port
<= 1024. [GH-487]
## 0.8.6 (August 28, 2011)
- Fix issue with download progress not properly clearing the line. [GH-476]
- NFS should work properly on Fedora. [GH-450]
- Arguments can be specified to the `shell` provisioner via the `args` option. [GH-475]
- Vagrant behaves much better when there are "inaccessible" VMs. [GH-453]
## 0.8.5 (August 15, 2011)
Note: 0.8.3 and 0.8.4 was yanked due to RubyGems encoding issue.
- Fix SSH `exec!` to inherit proper `$PATH`. [GH-426]
- Chef client now accepts an empty (`nil`) run list again. [GH-429]
- Fix incorrect error message when running `provision` on halted VM. [GH-447]
- Checking guest addition versions now ignores OSE. [GH-438]
- Chef solo from a remote URL fixed. [GH-431]
- Arch linux support: host only networks and changing the host name. [GH-439] [GH-448]
- Chef solo `roles_path` and `data_bags_path` can only be be single paths. [GH-446]
- Fix `virtualbox_not_detected` error message to require 4.1.x. [GH-458]
- Add shortname (`hostname -s`) for hostname setting on RHEL systems. [GH-456]
- `vagrant ssh -c` output no longer has a prefix and respects newlines
from the output. [GH-462]
## 0.8.2 (July 22, 2011)
- Fix issue with SSH disconnects not reconnecting.
- Fix chef solo simply not working with roles/data bags. [GH-425]
- Multiple chef solo provisioners now work together.
- Update Puppet provisioner so no deprecation warning is shown. [GH-421]
- Removed error on "provisioner=" in config, as this has not existed
for some time now.
- Add better validation for networking.
## 0.8.1 (July 20, 2011)
- Repush of 0.8.0 to fix a Ruby 1.9.2 RubyGems issue.
## 0.8.0 (July 20, 2011)
- VirtualBox 4.1 support _only_. Previous versions of VirtualBox
are supported by earlier versions of Vagrant.
- Performance optimizations in `virtualbox` gem. Huge speed gains.
- `:chef_server` provisioner is now `:chef_client`. [GH-359]
- SSH connection is now cached after first access internally,
speeding up `vagrant up`, `reload`, etc. quite a bit.
- Actions which modify the VM now occur much more quickly,
greatly speeding up `vagrant up`, `reload`, etc.
- SUSE host only networking support. [GH-369]
- Show nice error message for invalid HTTP responses for HTTP
downloader. [GH-403]
- New `:inline` option for shell provisioner to provide inline
scripts as a string. [GH-395]
- Host only network now properly works on multiple adapters. [GH-365]
- Can now specify owner/group for regular shared folders. [GH-350]
- `ssh_config` host name will use VM name if given. [GH-332]
- `ssh` `-e` flag changed to `-c` to align with `ssh` standard
behavior. [GH-323]
- Forward agent and forward X11 settings properly appear in
`ssh_config` output. [GH-105]
- Chef JSON can now be set with `chef.json =` instead of the old
`merge` technique. [GH-314]
- Provisioner configuration is no longer cleared when the box
needs to be downloaded during an `up`. [GH-308]
- Multiple Chef provisioners no longer overwrite cookbook folders. [GH-407]
- `package` won't delete previously existing file. [GH-408]
- Vagrantfile can be lowercase now. [GH-399]
- Only one copy of Vagrant may be running at any given time. [GH-364]
- Default home directory for Vagrant moved to `~/.vagrant.d` [GH-333]
- Specify a `forwarded_port_destination` for SSH configuration and
SSH port searching will fall back to that if it can't find any
other port. [GH-375]
## 0.7.8 (July 19, 2011)
- Make sure VirtualBox version check verifies that it is 4.0.x.
## 0.7.7 (July 12, 2011)
- Fix crashing bug with Psych and Ruby 1.9.2. [GH-411]
## 0.7.6 (July 2, 2011)
- Run Chef commands in a single command. [GH-390]
- Add `nfs` option for Chef to mount Chef folders via NFS. [GH-378]
- Add translation for `aborted` state in VM. [GH-371]
- Use full paths with the Chef provisioner so that restart cookbook will
work. [GH-374]
- Add "--no-color" as an argument and no colorized output will be used. [GH-379]
- Added DEVICE option to the RedHat host only networking entry, which allows
host only networking to work even if the VM has multiple NICs. [GH-382]
- Touch the network configuration file for RedHat so that the `sed` works
with host only networking. [GH-381]
- Load prerelease versions of plugins if available.
- Do not load a plugin if it depends on an invalid version of Vagrant.
- Encrypted data bag support in Chef server provisioner. [GH-398]
- Use the `-H` flag to set the proper home directory for `sudo`. [GH-370]
## 0.7.5 (May 16, 2011)
- `config.ssh.port` can be specified and takes highest precedence if specified.
Otherwise, Vagrant will still attempt to auto-detect the port. [GH-363]
- Get rid of RubyGems deprecations introduced with RubyGems 1.8.x
- Search in pre-release gems for plugins as well as release gems.
- Support for Chef-solo `data_bags_path` [GH-362]
- Can specify path to Chef binary using `binary_path` [GH-342]
- Can specify additional environment data for Chef using `binary_env` [GH-342]
## 0.7.4 (May 12, 2011)
- Chef environments support (for Chef 0.10) [GH-358]
- Suppress the "added to known hosts" message for SSH [GH-354]
- Ruby 1.8.6 support [GH-352]
- Chef proxy settings now work for chef server [GH-335]
## 0.7.3 (April 19, 2011)
- Retry all SSH on Net::SSH::Disconnect in case SSH is just restarting. [GH-313]
- Add NFS shared folder support for Arch linux. [GH-346]
- Fix issue with unknown terminal type output for sudo commands.
- Forwarded port protocol can now be set as UDP. [GH-311]
- Chef server file cache path and file backup path can be configured. [GH-310]
- Setting hostname should work on Debian now. [GH-307]
## 0.7.2 (February 8, 2011)
- Update JSON dependency to 1.5.1, which works with Ruby 1.9 on
Windows.
- Fix sudo issues on sudo < 1.7.0 (again).
- Fix race condition in SSH, which specifically manifested itself in
the chef server provisioner. [GH-295]
- Change sudo shell to use `bash` (configurable). [GH-301]
- Can now set mac address of host only network. [GH-294]
- NFS shared folders with spaces now work properly. [GH-293]
- Failed SSH commands now show output in error message. [GH-285]
## 0.7.1 (January 28, 2011)
- Change error output with references to VirtualBox 3.2 to 4.0.
- Internal SSH through net-ssh now uses `IdentitiesOnly` thanks to
upstream net-ssh fix.
- Fix issue causing warnings to show with `forwardx11` enabled for SSH. [GH-279]
- FreeBSD support for host only networks, NFS, halting, etc. [GH-275]
- Make SSH commands which use sudo compatible with sudo < 1.7.0. [GH-278]
- Fix broken puppet server provisioner which called a nonexistent
method.
- Default SSH host changed from `localhost` to `127.0.0.1` since
`localhost` is not always loopback.
- New `shell` provisioner which simply uploads and executes a script as
root on the VM.
- Gentoo host only networking no longer fails if alrady setup. [GH-286]
- Set the host name of your guest OS with `config.vm.host_name` [GH-273]
- `vagrant ssh-config` now outputs the configured `config.ssh.host`
## 0.7.0 (January 19, 2011)
- VirtualBox 4.0 support. Support for VirtualBox 3.2 is _dropped_, since
the API is so different. Stay with the 0.6.x series if you have VirtualBox
3.2.x.
- Puppet server provisioner. [GH-262]
- Use numeric uid/gid in mounting shared folders to increase portability. [GH-252]
- HTTP downloading follows redirects. [GH-163]
- Downloaders have clearer output to note what they're doing.
- Shared folders with no guest path are not automounted. [GH-184]
- Boxes downloaded during `vagrant up` reload the Vagrantfile config, which
fixes a problem with box settings not being properly loaded. [GH-231]
- `config.ssh.forward_x11` to enable the ForwardX11 SSH option. [GH-255]
- Vagrant source now has a `contrib` directory where contributions of miscellaneous
addons for Vagrant will be added.
- Vagrantfiles are now loaded only once (instead of 4+ times) [GH-238]
- Ability to move home vagrant dir (~/.vagrant) by setting VAGRANT_HOME
environmental variable.
- Removed check and error for the "OSE" version of VirtualBox, since with
VirtualBox 4 this distinction no longer exists.
- Ability to specify proxy settings for chef. [GH-169]
- Helpful error message shown if NFS mounting fails. [GH-135]
- Gentoo guests now support host only networks. [GH-240]
- RedHat (CentOS included) guests now support host only networks. [GH-260]
- New Vagrantfile syntax for enabling and configuring provisioners. This
change is not backwards compatible. [GH-265]
- Provisioners are now RVM-friendly, meaning if you installed chef or puppet
with an RVM managed Ruby, Vagrant now finds then. [GH-254]
- Changed the unused host only network destroy mechanism to check for
uselessness after the VM is destroyed. This should result in more accurate
checks.
- Networks are no longer disabled upon halt/destroy. With the above
change, its unnecessary.
- Puppet supports `module_path` configuration to mount local modules directory
as a shared folder and configure puppet with it. [GH-270]
- `ssh-config` now outputs `127.0.0.1` as the host instead of `localhost`.
## 0.6.9 (December 21, 2010)
- Puppet provisioner. [GH-223]
- Solaris system configurable to use `sudo`.
- Solaris system registered, so it can be set with `:solaris`.
- `vagrant package` include can be a directory name, which will cause the
contents to be recursively copied into the package. [GH-241]
- Arbitrary options to puppet binary can be set with `config.puppet.options`. [GH-242]
- BSD hosts use proper GNU sed syntax for clearing NFS shares. [GH-243]
- Enumerate VMs in a multi-VM environment in order they were defined. [GH-244]
- Check for VM boot changed to use `timeout` library, which works better with Windows.
- Show special error if VirtualBox not detected on 64-bit Windows.
- Show error to Windows users attempting to use host only networking since
it doesn't work yet.
## 0.6.8 (November 30, 2010)
- Network interfaces are now up/down in distinct commands instead of just
restarting "networking." [GH-192]
- Add missing translation for chef binary missing. [GH-203]
- Fix default settings for Opscode platform and comments. [GH-213]
- Blank client name for chef server now uses FQDN by default, instead of "client" [GH-214]
- Run list can now be nil, which will cause it to sync with chef server (when
chef server is enabled). [GH-214]
- Multiple NFS folders now work on linux. [GH-215]
- Add translation for state "stuck" which is very rare. [GH-218]
- virtualbox gem dependency minimum raised to 0.7.6 to verify FFI < 1.0.0 is used.
- Fix issue where box downloading from `vagrant up` didn't reload the box collection. [GH-229]
## 0.6.7 (November 3, 2010)
- Added validation to verify that a box is specified.
- Proper error message when box is not found for `config.vm.box`. [GH-195]
- Fix output of `vagrant status` with multi-vm to be correct. [GH-196]
## 0.6.6 (October 14, 2010)
- `vagrant status NAME` works once again. [GH-191]
- Conditional validation of Vagrantfile so that some commands don't validate. [GH-188]
- Fix "junk" output for ssh-config. [GH-189]
- Fix port collision handling with greater than two VMs. [GH-185]
- Fix potential infinite loop with root path if bad CWD is given to environment.
## 0.6.5 (October 8, 2010)
- Validations on base MAC address to avoid situation described in GH-166, GH-181
from ever happening again.
- Properly load sub-VM configuration on first-pass of config loading. Solves
a LOT of problems with multi-VM. [GH-166] [GH-181]
- Configuration now only validates on final Vagrantfile proc, so multi-VM
validates correctly.
- A nice error message is given if ".vagrant" is a directory and therefore
can't be accessed. [GH-172]
- Fix plugin loading in a Rails 2.3.x project. [GH-176]
## 0.6.4 (October 4, 2010)
- Default VM name is now properly the parent folder of the working directory
of the environment.
- Added method to `TestHelpers` to assist with testing new downloaders.
- `up --no-provision` works again. This disables provisioning during the
boot process.
- Action warden doesn't do recovery process on `SystemExit` exceptions,
allowing the double ctrl-C to work properly again. [related to GH-166]
- Initial Vagrantfile is now heavily commented with various available
options. [GH-171]
- Box add checks if a box already exists before the download. [GH-170]
- NFS no longer attempts to clean exports file if VM is not created,
which was causing a stack trace during recovery. [related to GH-166]
- Basic validation added for Chef configuration (both solo and server).
- Top config class is now available in all `Vagrant::Config::Base`
subclasses, which is useful for config validation.
- Subcommand help shows proper full command in task listing. [GH-168]
- SSH gives error message if `ssh` binary is not found. [GH-161]
- SSH gives proper error message if VM is not running. [GH-167]
- Fix some issues with undefined constants in command errors.
## 0.6.1, 0.6.2, 0.6.3 (September 27, 2010)
A lot of quick releases which all were to fix issues with Ruby 1.8.7
compatibility.
## 0.6.0 (September 27, 2010)
- VM name now defaults to the name of the containing folder, plus a timestamp.
This should make it easier to identify VMs in the VirtualBox GUI.
- Exposed Vagrant test helpers in `Vagrant::TestHelpers` for plugins to easily
test themselves against Vagrant environments.
- **Plugins** have landed. Plugins are simply gems which have a `vagrant_init.rb`
file somewhere in their load path. Please read the documentation on
vagrantup.com before attempting to create a plugin (which is very easy)
for more information on how it all works and also some guidelines.
- `vagrant package` now takes a `--vagrantfile` option to specify a
Vagrantfile to package. The `--include` approach for including a Vagrantfile
no longer works (previously built boxes will continue to work).
- `vagrant package` has new logic with regards to the `--include` option
depending on if the file path is relative or absolute (they can be
intermixed):
* _Relative_ paths are copied directly into the box, preserving
their path. So `--include lib/foo` would be in the box as "lib/foo"
* _Absolute_ paths are simply copied files into the root of the
box. So `--include /lib/foo` would be in the box as "foo"
- "vagrant_main" is no longer the default run list. Instead, chef
run list starts empty. It is up to you to specify all recipes in
the Vagrantfile now.
- Fixed various issues with certain action middleware not working if
the VM was not created.
- SSH connection is retried 5 times if there is a connection refused.
Related to GH-140.
- If `http_proxy` environmental variable is set, it will be used as the proxy
box adding via http.
- Remove `config.ssh.password`. It hasn't been used for a few versions
now and was only kept around to avoid exceptions in Vagrantfiles.
- Configuration is now validated so improper input can be found in
Vagrantfiles.
- Fixed issue with not detecting Vagrantfile at root directory ("/").
- Vagrant now gives a nice error message if there is a syntax error
in any Vagrantfile. [GH-154]
- The format of the ".vagrant" file which stores persisted VMs has
changed. This is **backwards incompatible**. Will provide an upgrade
utility prior to 0.6 launch.
- Every [expected] Vagrant error now exits with a clean error message
and a unique exit status, and raises a unique exception (if you're
scripting Vagrant).
- Added I18n gem dependency for pulling strings into clean YML files.
Vagrant is now localizable as a side effect! Translations welcome.
- Fixed issue with "Waiting for cleanup" message appearing twice in
some cases. [GH-145]
- Converted CLI to use Thor. As a tradeoff, there are some backwards
incompatibilities:
* `vagrant package` - The `--include` flag now separates filenames
by spaces, instead of by commas. e.g. `vagrant package --include x y z`
* `vagrant ssh` - If you specify a command to execute using the `--execute`
flag, you may now only specify one command (before you were able to
specify an arbitrary amount). e.g. `vagrant ssh -e "echo hello"`
* `vagrant ssh-config` has become `vagrant ssh_config` due to a limitation
in Thor.
## 0.5.4 (September 7, 2010)
- Fix issue with the "exec failed" by running on Tiger as well.
- Give an error when downloading a box which already exists prior
to actually downloading the box.
## 0.5.3 (August 23, 2010)
- Add erubis as a dependency since its rendering of `erb` is sane.
- Fixed poorly formatted Vagrantfile after `vagrant init`. [GH-142]
- Fixed NFS not working properly with multiple NFS folders.
- Fixed chef solo provision to work on Windows. It was expanding a linux
path which prepended a drive letter onto it.
## 0.5.2 (August 3, 2010)
- `vagrant up` can be used as a way to resume the VM as well (same as
`vagrant resume`). [GH-134]
- Sudo uses "-E" flag to preserve environment for chef provisioners.
This fixes issues with CentOS. [GH-133]
- Added "IdentitiesOnly yes" to options when `vagrant ssh` is run to
avoid "Too Many Authentication Failures" error. [GH-131]
- Fix regression with `package` not working. [GH-132]
- Added ability to specify box url in `init`, which populates the
Vagrantfile with the proper `config.vm.box_url`.
## 0.5.1 (July 31, 2010)
- Allow specifying cookbook paths which exist only on the VM in `config.chef.cookbooks_path`.
This is used for specifying cookbook paths when `config.chef.recipe_url` is used. [GH-130]
See updated chef solo documentation for more information on this.
- No longer show "Disabling host only networks..." if no host only networks
are destroyed. Quiets `destroy`, `halt`, etc output a bit.
- Updated getting started guide to be more up to date and generic. [GH-125]
- Fixed error with doing a `vagrant up` when no Vagrantfile existed. [GH-128]
- Fixed NFS erroring when NFS wasn't even enabled if `/etc/exports` doesn't
exist. [GH-126]
- Fixed `vagrant resume` to properly resume a suspended VM. [GH-122]
- Fixed `halt`, `destroy`, `reload` to where they failed if the VM was
in a saved state. [GH-123]
- Added `config.chef.recipe_url` which allows you to specify a URL to
a gzipped tar file for chef solo to download cookbooks. See the
[chef-solo docs](http://wiki.opscode.com/display/chef/Chef+Solo#ChefSolo-RunningfromaURL) for more information.
[GH-121]
- Added `vagrant box repackage` which repackages boxes which have
been added. This is useful in case you want to redistribute a base
box you have but may have lost the actual "box" file. [GH-120]
## Previous
The changelog began with version 0.5.1 so any changes prior to that
can be seen by checking the tagged releases and reading git commit
messages.