$ 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