Commit Graph

320 Commits

Author SHA1 Message Date
Gerben Meijer
aaab5ab373 Update Atlas link to point to libvirt boxes directly 2016-06-29 17:57:22 +02:00
Gerben Meijer
22e7a449e2 Clarify the use of disk_bus. Fixes #621 2016-06-23 18:10:37 +02:00
Shawn Lower
cf610f5104 Document steps for using the channels parameters 2016-06-10 10:00:09 +07:00
Gerben Meijer
7d2e1e9b8e Clarify installation steps
Explain that user should have qemu and libvirt installed and should
ensure libvirt works before starting with vagrant-libvirt.
2016-05-12 15:37:18 +02:00
Gerben Meijer
86a2ba5250 Change github reference to the new organization 2016-04-27 14:08:25 +02:00
Gerben Meijer
9fe4d4c68d Update README on dtb support 2016-03-23 11:16:43 +01:00
Gerben Meijer
98f2eaed5e Add cpu_model and cpu_fallback.
This allows for specific CPU selection and enforcement when cpu_mode =
custom, which is important when emulating CPUs of different architecture
than the host.
2016-03-14 16:03:27 +01:00
Dmitry Vasilets
a963ff4c70 Merge pull request #573 from alirizakeles/patch-1
ruby-dev package into missing libraries
2016-03-10 08:26:06 +01:00
Dmitry Vasilets
c458a5fc90 Merge pull request #558 from fred-a-kemp/feature/emulator_path
Make it possible to set the path to the device model emulator.
2016-03-10 08:25:43 +01:00
Ali Riza Keles
98461f4655 ruby-dev package into missing libraries
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>'
```
2016-03-09 17:50:40 +02:00
Leandro Lisboa Penz
404f53db95 Fix "machine_type" documentation - was "machine" in README.md 2016-02-29 21:34:19 -03:00
Lalatendu Mohanty
931a5e6be4 Adding community supported versions of CentOS and Fedora boxes
https://atlas.hashicorp.com/fedora
https://atlas.hashicorp.com/centos

Signed-off-by: Lalatendu Mohanty <lmohanty@redhat.com>
2016-02-23 20:12:52 +05:30
anonym
586881aedd Document the emulator_path option. 2016-02-17 23:24:07 +01:00
Gerben Meijer
73f5b7aba4 Support libvirt autostart functionality 2016-02-12 20:28:39 +01:00
Dmitry Vasilets
c6d5c1a3a6 Merge pull request #554 from infernix/cpu-features
Enable CPU features support
2016-02-11 15:12:31 +01:00
Gerben Meijer
4554ceb6f0 Update README on CPU features 2016-02-11 14:56:08 +01:00
petRUShka
7b156cc34d Fix [REAMDE] missing in PCI device passthrough examples 2016-02-05 12:36:40 +03:00
Darragh Bailey
026c6a7395 Add Travis CI badge 2016-01-28 10:51:26 +00:00
Michal Rostecki
b4a66bb43f Allow to forward ports from a custom adapter
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.
2016-01-12 10:37:48 +01:00
Trevor Vaughan
ecb1339312 Added TPM Device support
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
2016-01-06 09:48:20 -05:00
Simon McFarlane
f37616b6fe Add kvm_hidden option to README 2015-12-16 14:22:44 -08:00
stanley karunditu
66753d7a61 add doc for libvirt__iface_name feature 2015-12-07 12:50:33 -05:00
Dmitry Vasilets
504c867273 Merge pull request #515 from fxkr/usb-support
Add support for USB passthrough
2015-11-25 08:46:10 +01:00
Felix Kaiser
bfea80d789 Add support for USB passthrough 2015-11-25 00:46:55 +01:00
Felix Kaiser
d5e340e9db README: Fix example on PCI passthrough
Was apparently copy/pasted from Input section.
2015-11-25 00:03:11 +01:00
Mattias Lundberg
11441f8a1d Fix typo in readme. 2015-11-14 10:49:27 +01:00
Paul Bourke
9869213a4f Allow disabling guest-to-guest ipv6 comms in libvirt networks
Background
----------
The default private_network template we supply has the following tag:

    <network ipv6='yes'>

This enables ipv6 on guest interfaces for guest-to-guest communication.
This causes a problem on hosts that either do not have ipv6 enabled or
configured correctly, resulting in an error on 'vagrant up' as follows:

    Error while activating network: Call to virNetworkCreate failed: internal error: Failed to apply firewall rules /usr/sbin/ip6tables --table filter --insert FORWARD --in-interface virbr1 --jump REJECT: ip6tables v1.4.21: can't initialize ip6tables table `filter': Address family not supported by protocol
    Perhaps ip6tables or your kernel needs to be upgraded.

Reading here:
http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=705e67d40b09a905cd6a4b8b418d5cb94eaa95a8
would suggest the above option should really be off by default, however,
I don't want to break existing behaviour or setups. This patch adds two
new config items, one for the default management network, and one for
additional user defined private networks.

Usage
-----
To disable ipv6 for the managment network:

    config.vm.provider :libvirt do |libvirt|
        libvirt.management_network_guest_ipv6 = "no"
    end

To disable for a custom private network:

    config.vm.network "private_network", ip: "192.168.33.10", libvirt__guest_ipv6: "no"

Extra Notes:
------------
Also note, if you get hit by the above error and want to apply the above
fix, you will need to clear out the management network manually:

    $ sudo virsh net-list --all
    Name                 State      Autostart     Persistent
    ----------------------------------------------------------
    default              active     yes           yes
    vagrant-libvirt      inactive   no            yes

    $ sudo virsh net-undefine vagrant-libvirt
    Network vagrant-libvirt has been undefined
2015-11-09 17:45:10 +00:00
bcambl
b48d0b3e5b network interface definition example indentation
Match indentation for consistency with all other code examples
2015-10-31 17:14:14 -06:00
Dmitry Vasilets
5ed8a2a4f2 Merge pull request #491 from giacomolozito/9p_nomount
Option to disable p9 automounting at boot
2015-10-26 14:06:18 +01:00
Giacomo Lozito
bd112300c5 Add info for 9p mount: option in README 2015-10-25 19:20:30 +00:00
Dmitry Vasilets
3bac45efb6 Merge pull request #490 from petRUShka/add_pcis
Add PCI device passthrough functionality
2015-10-25 19:58:24 +01:00
Maxim Petrunin
be30311e5f Fix README.md, PCI section 2015-10-23 11:19:13 +03:00
Maxim Petrunin
b2684d310f Add PCI device passthrough functionality 2015-10-23 11:12:57 +03:00
Maxim Petrunin
f9827479c6 README: Rakefile no longer provide test run. Switch to rspec 2015-10-22 08:43:06 +03:00
Max Kutsevol
1fd789534d Customising libvirt settings can only be done when creating a box #418
* Fixed regression when using additional disks. Now disk_bus setting
applies only to main disk.
* Added ability to change additional disk bus on reload. Updated readme.

Task-Url: https://github.com/pradels/vagrant-libvirt/issues/418
Signed-off-by: Max Kutsevol <max@coolvds.com>
2015-10-06 12:39:11 +03:00
Max Kutsevol
837a344724 suspend to disk? #411
* Added the suspend_mode domain specific option. Now it can perform a
managed save/resume. Switching this domain specific option can be done
when the domain is supended, it will correctly resume the domain. 

Task-Url: https://github.com/pradels/vagrant-libvirt/issues/411
Signed-off-by: Max Kutsevol <max@coolvds.com>
2015-09-27 14:23:09 +03:00
Max Kutsevol
d11b0b970f Customising libvirt settings can only be done when creating a box #418
* Added support to modify domain specific options on already defined
domain, updated relevant documentation. For list of modifiable options
please see updated documentation.
* Added new domain specific option - uuid. To force domain UUID when
creating new VM.


Task-Url: https://github.com/pradels/vagrant-libvirt/issues/418
Signed-off-by: Max Kutsevol <max@coolvds.com>
2015-09-26 20:46:33 +03:00
Paul Chechetin
bb03b6bd62 Add Table of Contents
Readme file is large, so navigation may be quite compilated.
Table of contents improves navigation but adds a little work when the content is changed.

Table of Contents was generated with http://doctoc.herokuapp.com/
2015-09-25 16:52:42 +03:00
Dmitry Vasilets
4193485670 Merge pull request #467 from Paulche/master
Improve decoration
2015-09-25 14:47:04 +02:00
Paul Chechetin
334f14b6e2 Improve decoration 2015-09-25 15:36:24 +03:00
Max Kutsevol
01c2fe6276 Issue with emulated CPU types.
For better VM performance CPU type should be set not to qemu64, but to
the host cpu type. 
For example see the difference (uppercased)

flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc
rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2
x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm
tpr_shadow vnmi flexpriority ept xsaveopt

Added extensions when emulating host cpu model: 
flags		: fpu VME de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
PAT pse36 clflush mmx fxsr sse sse2 SS syscall nx RDTSCP lm CONSTANT_TSC
rep_good nopl EAGERFPU pni PCLMULQDQ vmx SSSE3 cx16 PCID SSE4_1 SSE4_2
x2apic popcnt TSC_DEADLINE_TIMER AES XSAVE AVX hypervisor lahf_lm
tpr_shadow vnmi flexpriority ept XSAVEOPT

Nested virtualization requires VMX/SVM capabilities, which are still
being added when domain.nested is set to true. 

Using the current default value for cpu_mode everyone will benefit from
the better VMs performance.

Signed-off-by: Max Kutsevol <max@kutsevol.com>
2015-09-25 13:58:08 +03:00
stanley karunditu
17254d4358 previously in PR#413 added tcp tunnel support. adding mcast tunnel support
and merging features and just calling it tunnel support.
2015-09-08 14:11:05 -04:00
Dusty Mabe
6bbb16fc34 A few spelling/wording enhancements. 2015-08-25 10:44:16 -04:00
Gerben Meijer
3b641cc5cc Update docs: no box requires vagrant 1.6.0+ 2015-08-14 14:33:01 +02:00
Gerben Meijer
aa3a6faf44 Implement boot ordering as a separate class
This is required because in current versions of libvirt, it is not
possible to specify a boot order when attaching a device; therefore we
can only parse the entire domain XML after all devices have been created
and then assign boot ordering according to the Vagrantfile
specification. This allows us to specify exact boot order for hd, cdrom
and network.
2015-08-11 00:39:53 +02:00
Gerben Meijer
bbbd804f28 Add support for VMs with no box
Vagrant already supports VMs without boxes with Docker.
We leverage this in libvirt as well. The use case for this is to PXE
oot a vagrant VM that is then installed over the network then
installed over the network; a different use case would be to test PXE
booted clients that do not use a hard drive whatsoever.
2015-08-10 17:10:23 +02:00
dima
b50b23283b Merge branch 'master' of https://github.com/gbriones1/vagrant-libvirt into gbriones1-master 2015-08-07 08:33:21 +02:00
Gabriel Briones Sayeg
3277506627 Include custom UEFI loader
Domain XML has loader tag to read specific OVMF.fd path

Signed-off-by: Gabriel Briones Sayeg <gbriones.gdl@gmail.com>
2015-08-06 11:00:15 -05:00
James Johnson
de421b1be1 readme changes 2015-08-05 10:49:12 -05:00
James Johnson
1a8e457960 merged in the upstream changes correctly (I hope) 2015-08-05 10:47:58 -05:00