Devices which do not support any default vga device (e.g. ARM boards)
can't be started when a video device is present. Libvirt automatically
adds a <video> device whenever a <graphics> element is defined.
Using 'none' was already documented as supported but did not work.
This allows for specific CPU selection and enforcement when cpu_mode =
custom, which is important when emulating CPUs of different architecture
than the host.
i tried to install on a fresh ubuntu 14.04, installation did not work unless adding ruby-dev. it failed with error below:
```bash
# vagrant plugin install vagrant-libvirt
Installing the 'vagrant-libvirt' plugin. This can take a few minutes...
/usr/lib/ruby/1.9.1/rubygems/installer.rb:562:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:4:in `<main>'
Gem files will remain installed in /root/.vagrant.d/gems/gems/nokogiri-1.6.7.2 for inspection.
Results logged to /root/.vagrant.d/gems/gems/nokogiri-1.6.7.2/ext/nokogiri/gem_make.out
from /usr/lib/ruby/1.9.1/rubygems/installer.rb:540:in `block in build_extensions'
from /usr/lib/ruby/1.9.1/rubygems/installer.rb:515:in `each'
from /usr/lib/ruby/1.9.1/rubygems/installer.rb:515:in `build_extensions'
from /usr/lib/ruby/1.9.1/rubygems/installer.rb:180:in `install'
from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:297:in `block in install'
from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `each'
from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `each_with_index'
from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `install'
from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:65:in `block in call'
from /usr/share/vagrant/plugins/commands/plugin/gem_helper.rb:42:in `block in with_environment'
from /usr/lib/ruby/1.9.1/rubygems/user_interaction.rb:40:in `use_ui'
from /usr/share/vagrant/plugins/commands/plugin/gem_helper.rb:41:in `with_environment'
from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:52:in `call'
from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call'
from /usr/share/vagrant/plugins/commands/plugin/action/bundler_check.rb:20:in `call'
from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call'
from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in `call'
from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:69:in `block in run'
from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in `busy'
from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:69:in `run'
from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:17:in `action'
from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:27:in `execute'
from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:56:in `execute'
from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:38:in `execute'
from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:484:in `cli'
from /usr/bin/vagrant:127:in `<main>'
```
Reporting the MAC address being looked for in the ARP table should help
determine why some machines pick up an address belonging to another
when starting multiple VM's in parallel.
To distinguish between future addition of acceptance tests, rename the
existing to tests to match their type as 'unit' tests in line with
other uses of vagrant-spec.
On some systems (e.g. Debian) omitting this setting results in the
following error:
Error while creating domain: Error saving the server: Call to
virDomainDefineXML failed: invalid argument: could not find
capabilities for domaintype=kvm
Which has been reported as:
https://github.com/pradels/vagrant-libvirt/issues/539
The following option was added:
* cpu_feature - Defaults to unset, needs two options: "name" and "policy", as interpreted by libvirt
This only adds support for creating a VM with specific CPU features defined, not for changing them after the VM was created
Vagrant supports a --no-destroy-on-error option to up to skip destroying
of the machine if there was an error on bringing it up. This can be
useful where an environment can trigger a bug which would normally
result in the domain being torn down preventing additional analysis.
Make sure to simply exit the loops by returning terminate, instead of
looking to execute the remaining retries.
Add spec tests to check that terminate does not call the runner to
remove the domain if the user has disabled destroy on error.
Define a missing constant for vagrant < 1.6 exposed by the added tests.
Add some basic spec tests for the WaitTillUp action class to lay some
foundations. Utilize vagrant-spec pinned to a known working commit for
tests to pass consistently until they provide releases.
Requires updating some of the rspec libraries and includes
sharedcontext.rb from the jantman/vagrant-r10k project on github.
Before this change, vagrant-libvirt assumed that all
port forwards should be done on eth0 adapter. Now
user can provide a custom adapter via "adapter" option
when calling forwarded_port.
Added TPM device support to include switching out the TPM device on
reboot if necessary.
The following options were added:
* tpm_model - Defaults to 'tpm-tis'
* tpm_type - Defaults to 'passthrough'
* tpm_path - Must be specified, other options are ignored if this is
not specified. Most users will set this to /dev/tpm0.
For additional information on using a TPM with Libvirt see the following:
* http://wiki.qemu.org/Features/TPM
* https://libvirt.org/formatdomain.html#elementsTpm
Change the return format of the nic_mac_addresses capability to comply
with the format expected by Vagrant:
# Vagrant expects a hash with an index starting at 1 as key
# and the mac as uppercase string without colons as value
This fixes the configuration of additional network interfaces for
Windows guests. Other guests don't require the mac address of a
interface to configure it, thus this only affected windows guests.