# __ ____ ____ _____ # ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/ # / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \ # / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ / # / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/ # /_/ /____/ # WHAT ? This Kickstart file bootstraps a minimal desktop-oriented nested-host. # 'v' for virtual machine, 'e' for efi, 'm' for minimal, 'd' for desktop, 'h' for hypervisor, 'd' for development only. # USAGE : Press the `tab` or 'e' key during POST and apend that after the 'quiet' string : # inst.ks=https://git.phyllo.me/home/kickstart/raw/branch/master/f34/vemdhd.cfg # A shorter URL can also be used : # inst.ks=https://url.phyllo.me/vemdhd # ATTENTION : this kickstart file will automatically DESTROY the main virtual disk 'vda' and all of its contents. # Bye bye! %include https://git.phyllo.me/home/kickstart/raw/branch/master/f34/vemdd.cfg # Includes vemdd.cfg, the minimal GNOME-based desktop-oriented virtual machine ks file. %post # Beginning of %post section dnf install -y qemu-kvm libvirt libvirt-daemon-config-network libvirt-daemon-kvm # Install minimal tools dedicated to virtualization. dnf install -y virt-install virt-manager virt-viewer virt-top libguestfs-tools python3-libguestfs guestfs-tools # Complementary tools useful for interacting with virtual machines. usermod -a -G libvirt test ## make user "test" part of the existing libvirt group to allow it to interact with the nested-hypervisor. # Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd, kvmgt, vfio-mdev echo "vfio" > /etc/modules-load.d/vfio.conf echo "vfio-pci" > /etc/modules-load.d/vfio-pci.conf echo "vfio_iommu_type1" > /etc/modules-load.d/vfio_iommu_type1.conf echo "vfio_virqfd" > /etc/modules-load.d/vfio_virqfd.conf # Create a directory to store iso images and make the user "test" its owner mkdir /var/lib/libvirt/iso chown test:test /var/lib/libvirt/iso # Create a directory to store rom files and make the user "test" its owner mkdir /var/lib/libvirt/rom chown test:test /var/lib/libvirt/rom # Create a network bridge (doesn't work, perhaps because nmcli is not available at that time) # nmcli con add ifname br0 type bridge con-name br0 # nmcli con add type bridge-slave ifname en0 master br0 # nmcli con up br0 %end # End of the %post section