$ vagrant plugin install vagrant-libvirt
# My custom changes:
$ curl -sL https://github.com/vagrant-libvirt/vagrant-libvirt/archive/0.0.35.tar.gz | tar -xzf - -C /tmp/
$ curl -sL https://github.com/fog/fog-libvirt/archive/v0.0.3.tar.gz | tar -xzf -C /tmp/
$ diff -r /tmp/fog-libvirt-0.0.3/ /home/nwani/.vagrant.d/gems/gems/fog-libvirt-0.0.3/
diff -r /tmp/fog-libvirt-0.0.3/lib/fog/libvirt/models/compute/templates/volume.xml.erb /home/nwani/.vagrant.d/gems/gems/fog-libvirt-0.0.3/lib/fog/libvirt/models/compute/templates/volume.xml.erb
8,9c8,9
< 0
< 0
---
> <%= Process.uid %>
> <%= Process.gid %>
19,20c19,20
< 0
< 0
---
> <%= Process.uid %>
> <%= Process.gid %>
$ diff -r /tmp/vagrant-libvirt-0.0.35/ /home/nwani/.vagrant.d/gems/gems/vagrant-libvirt-0.0.35/
diff -r /tmp/vagrant-libvirt-0.0.35/lib/vagrant-libvirt/action.rb /home/nwani/.vagrant.d/gems/gems/vagrant-libvirt-0.0.35/lib/vagrant-libvirt/action.rb
28,29c28,29
< b2.use CreateNetworks
< b2.use CreateNetworkInterfaces
---
> # b2.use CreateNetworks
> # b2.use CreateNetworkInterfaces
40,42c40,42
< b2.use PrepareNFSValidIds
< b2.use SyncedFolderCleanup
< b2.use SyncedFolders
---
> # b2.use PrepareNFSValidIds
> # b2.use SyncedFolderCleanup
> # b2.use SyncedFolders
45,46c45,46
< b2.use CreateNetworks
< b2.use CreateNetworkInterfaces
---
> # b2.use CreateNetworks
> # b2.use CreateNetworkInterfaces
50c50
< b2.use WaitTillUp
---
> # b2.use WaitTillUp
82c82
< b3.use CreateNetworks
---
> # b3.use CreateNetworks
91c91
< b3.use CreateNetworks
---
> # b3.use CreateNetworks
94,96c94,96
< b3.use PrepareNFSValidIds
< b3.use SyncedFolderCleanup
< b3.use SyncedFolders
---
> # b3.use PrepareNFSValidIds
> # b3.use SyncedFolderCleanup
> # b3.use SyncedFolders
103c103
< b3.use WaitTillUp
---
> # b3.use WaitTillUp
diff -r /tmp/vagrant-libvirt-0.0.35/lib/vagrant-libvirt/templates/volume_snapshot.xml.erb /home/nwani/.vagrant.d/gems/gems/vagrant-libvirt-0.0.35/lib/vagrant-libvirt/templates/volume_snapshot.xml.erb
8,9c8,10
< 0
< 0
---
> <%= Process.uid %>
> <%= Process.gid %>
19,20c20,21
< 0
< 0
---
> <%= Process.uid %>
> <%= Process.gid %>
$ LIBVIRT_DEBUG=1 /usr/sbin/libvirtd # In a separate tab
$ export LIBVIRT_DEFAULT_URI=qemu+unix:///session?socket=/run/user/$(id -u)/libvirt/libvirt-sock
$ mkdir -p /home/${USER}/vms/vagrant
$ cat < /tmp/network.xml
vagrant
/home/${USER}/vms/vagrant
0755
$(id -u)
$(id -g)
EOF
$ virsh pool-create /tmp/nework.xml
Pool vagrant created from /tmp/network.xml
$ virsh pool-list --all
Name State Autostart
-------------------------------------------
vagrant active no
$ cat Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "fedora/23-cloud-base"
config.vm.provider :libvirt do |libvirt|
libvirt.host = "localhost"
libvirt.uri = "qemu+unix:///session?socket=/run/user/" + Process.uid.to_s + "/libvirt/libvirt-sock"
libvirt.storage_pool_name = "vagrant"
end
end
$ vagrant up
Bringing machine 'default' up with 'libvirt' provider...
==> default: Uploading base box image as volume into libvirt storage...
==> default: Creating image (snapshot of base box volume).
==> default: Creating domain with the following settings...
==> default: -- Name: Downloads_default
==> default: -- Domain type: kvm
==> default: -- Cpus: 1
==> default: -- Memory: 512M
==> default: -- Management MAC:
==> default: -- Loader:
==> default: -- Base box: fedora/23-cloud-base
==> default: -- Storage pool: vagrant
==> default: -- Image: /home/nwani/vms/vagrant/Downloads_default.img (41G)
==> default: -- Volume Cache: default
==> default: -- Kernel:
==> default: -- Initrd:
==> default: -- Graphics Type: vnc
==> default: -- Graphics Port: 5900
==> default: -- Graphics IP: 127.0.0.1
==> default: -- Graphics Password: Not defined
==> default: -- Video Type: cirrus
==> default: -- Video VRAM: 9216
==> default: -- Keymap: en-us
==> default: -- TPM Path:
==> default: -- INPUT: type=mouse, bus=ps2
==> default: -- Command line :
==> default: Creating shared folders metadata...
==> default: Starting domain.
$ vagrant status
Current machine states:
default running (libvirt)
The Libvirt domain is running. To stop this machine, you can run
`vagrant halt`. To destroy the machine, you can run `vagrant destroy`.
$ ps aux | grep qemu
nwani 943 98.6 2.2 1435820 177820 ? Sl 19:03 0:02 /usr/bin/qemu-system-x86_64 -machine accel=kvm -name Downloads_default -S -machine pc-i440fx-2.3,accel=kvm,usb=off -cpu SandyBridge,+erms,+smep,+fsgsbase,+rdrand,+f16c,+osxsave,+pcid,+pdcm,+xtpr,+tm2,+est,+smx,+vmx,+ds_cpl,+monitor,+dtes64,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme -m 512 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 7e5d5c85-101b-4c87-a139-79374211bc88 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/home/nwani/.config/libvirt/qemu/lib/Downloads_default.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/home/nwani/vms/vagrant/Downloads_default.img,if=none,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 127.0.0.1:0 -k en-us -device cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on
nwani 955 0.0 0.0 115828 2320 pts/9 R+ 19:03 0:00 grep --color=auto qemu