diff --git a/dishes/virtual-desktop-hypervisor.cfg b/dishes/virtual-desktop-hypervisor.cfg index 8091088..798f923 100644 --- a/dishes/virtual-desktop-hypervisor.cfg +++ b/dishes/virtual-desktop-hypervisor.cfg @@ -225,6 +225,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image %packages --exclude-weakdeps NetworkManager +NetworkManager-config-connectivity-fedora NetworkManager-wifi audit basesystem diff --git a/dishes/virtual-desktop.cfg b/dishes/virtual-desktop.cfg index 1a2143f..ebca0a4 100644 --- a/dishes/virtual-desktop.cfg +++ b/dishes/virtual-desktop.cfg @@ -132,6 +132,7 @@ glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/ %packages --exclude-weakdeps NetworkManager +NetworkManager-config-connectivity-fedora NetworkManager-wifi audit basesystem diff --git a/dishes/virtual-server-hypervisor.cfg b/dishes/virtual-server-hypervisor.cfg new file mode 100644 index 0000000..798f923 --- /dev/null +++ b/dishes/virtual-server-hypervisor.cfg @@ -0,0 +1,311 @@ +# Generated by pykickstart v3.62 +#version=DEVEL +# Use text mode install +text +# Firewall configuration +firewall --disabled +# Run the Setup Agent on first boot +firstboot --reconfig +# Keyboard layouts +keyboard --xlayouts='ch (fr)' +# System language +lang en_US.UTF-8 +# Network information +network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate +# Shutdown after installation +shutdown +repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch +repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch +# Root password +rootpw --iscrypted --lock locked +# SELinux configuration +selinux --disabled +# System services +services --enabled="NetworkManager,libvirtd" +# System timezone +timezone Europe/Paris --utc +# Use network installation +url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch" +# X Window System configuration information +xconfig --defaultdesktop=GNOME --startxonboot +# System bootloader configuration +bootloader --location=mbr --timeout=1 +# Clear the Master Boot Record +zerombr +# Partition clearing information +clearpart --all --initlabel +# Disk partitioning information +part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi +part /boot --fstype="ext4" --size=512 --label=boot +part / --fstype="ext4" --grow --label=root + +%post --logfile=/mnt/sysimage/root/post.log + +localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked. +dnf update -y # Update the system +grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful + +%end + +%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log + +truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available + +## Append lines to existing vendor.conf file, so that options are skipped upon reboot +cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF +[pages] +skip=privacy +[goa] +providers=local-first! +EOF + +%end + +%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log + +# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF +# [org.gnome.desktop.background] +# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg' +# EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF +[org.gnome.desktop.media-handling] +automount-open=false +autorun-never=true +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF +[org.gnome.Terminal.Legacy.Profile] +font='DejaVu Sans Mono 12' +use-system-font=false +audible-bell=false +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF +[org.gnome.desktop.wm.preferences] +button-layout=':minimize,maximize,close' +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF +[org.gnome.desktop.a11y] +always-show-universal-access-status=true +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF +[org.gnome.desktop.interface] +enable-animations=false +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF +[org.gnome.desktop.privacy] +remove-old-temp-files=true +remember-recent-files=false +remember-app-usage=false +disable-camera=true +disable-microphone=true +disable-sound-output=true +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF +[org.gnome.desktop.search-providers] +disable-external=true +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF +[org.gnome.desktop.notifications.application] +enable-sound-alerts=false +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF +[org.gnome.desktop.sound] +event-sounds=false +EOF + +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF +[org.gnome.desktop.thumbnailers] +disable-all=true +EOF + +glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/ + +%end + +%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log + +# Create a file to autostart virt-manager +cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF +[Desktop Entry] +Type=Application +Name=Virtual Machine Manager +Exec=virt-manager +EOF + +# Modify the default virt-manager behavior for misc. options +cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF + +# Modify the default virt-manager behavior for misc. options +[org.virt-manager.virt-manager] +xmleditor-enabled=true +manager-window-height=600 +manager-window-width=200 + +# Libvirt URIs listed in the manager window +[org.virt-manager.virt-manager.connections] +uris=['qemu:///system', 'qemu:///session'] +autoconnect=['qemu:///session'] + +# Show usage in the domain list +[org.virt-manager.virt-manager.vmlist-fields] +cpu-usage=false + +# Settings related to statistics +[org.virt-manager.virt-manager.stats] +update-interval=3 +enable-disk-poll=true +enable-memory-poll=true +enable-net-poll=true + +# Default behavior for the console +[org.virt-manager.virt-manager.console] +scaling=2 +resize-guest=1 +autoconnect=false + +# Do not show toolbar +[org.virt-manager.virt-manager.details] +show-toolbar=false + +# Modify default values for new VMs +[org.virt-manager.virt-manager.new-vm] +storage-format='raw' +cpu-default='host-model' +graphics-type='spice' + +# Modify the default virt-manager behavior for confirmation dialogues +[org.virt-manager.virt-manager.confirm] +forcepoweroff=false +removedev=false +unapplied-dev=false + +EOF + +glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/ + +%end + +%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log + +# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd +echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf +echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf +echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf +echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf + +mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account. + +# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory + +# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit +# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'. +# virsh pool-build isos # Build the pool +# virsh pool-start isos # Start it +# virsh pool-autostart isos # Set-it to autostart + +# fetch custom script and make it executable +# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/ +# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh + +# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml +# virsh define linux.xml + +# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml +# virsh define windows.xml + +%end + +%packages --exclude-weakdeps +NetworkManager +NetworkManager-config-connectivity-fedora +NetworkManager-wifi +audit +basesystem +bash +coreutils +curl +dejavu-sans-mono-fonts +dhcp-client +dnf5 +dnf5-plugins +dracut +dracut-config-rescue +e2fsprogs +fedora-remix-logos +filesystem +firefox +firewalld +fwupd +generic-logos +generic-release +generic-release-common +generic-release-notes +glibc +gnome-backgrounds.noarch +gnome-initial-setup +gnome-shell +gnome-terminal +guestfs-tools +hostname +iproute +iputils +kbd +kernel +less +libguestfs-tools +libusb1 +libvirt +libvirt-daemon-config-network +libvirt-daemon-kvm +man-db +mesa-dri-drivers +mozilla-ublock-origin.noarch +nano +ncurses +openssh-clients +openssh-server +parted +pciutils +plymouth +policycoreutils +prefixdevname +procps-ng +python3-libguestfs +qemu-guest-agent +qemu-kvm +rootfiles +rpm +selinux-policy-targeted +setup +shadow-utils +spice-vdagent +sssd-common +sssd-kcm +sudo +systemd +systemd-resolved +usbutils +util-linux +vim-minimal +virt-install +virt-manager +virt-top +wget2 +wpa_supplicant +zram-generator-defaults +-fedora-logos +-fedora-release +-fedora-release-common +-fedora-release-identity-basic +-fedora-release-notes +-gnome-tour + +%end diff --git a/dishes/virtual-server.cfg b/dishes/virtual-server.cfg index 07c2525..bd4e144 100644 --- a/dishes/virtual-server.cfg +++ b/dishes/virtual-server.cfg @@ -47,6 +47,7 @@ grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful %packages --exclude-weakdeps NetworkManager +NetworkManager-config-connectivity-fedora audit basesystem bash