18 Commits

Author SHA1 Message Date
6f98f5596d Merge branch 'main' into local-iso 2025-12-11 20:58:59 +00:00
Lukas Greve
05cf28c11a Add local ISO detection functionality to deploy-distro.sh 2025-12-11 21:56:56 +01:00
ba06919d98 Merge pull request 'simplify-virtual-editions' (#3) from simplify-virtual-editions into main
Reviewed-on: #3
2025-12-11 19:52:57 +00:00
Lukas Greve
e018870d0e updated recipes 2025-12-11 20:50:24 +01:00
Lukas Greve
0c76e7626d make it even more insecure, to make it easier to debug 2025-12-11 20:50:13 +01:00
Lukas Greve
28c390f1b4 remove the post section to speed installation process 2025-12-11 20:49:29 +01:00
Lukas Greve
ebd35f0b1f virtual dishes are for development-only 2025-12-10 21:31:31 +01:00
Lukas Greve
6832142907 add allow ssh incoming connection 2025-12-10 21:31:01 +01:00
Lukas Greve
eae12100a8 correct an awful regression. SELinux is either disabled or in enforcing mode. The enable switch does not work 2025-12-10 21:30:19 +01:00
Lukas Greve
bc5f156cd9 All non-virtual dishes / recipes are meant to be shipped with sane security defaults 2025-12-10 21:29:25 +01:00
Lukas Greve
8245bdf3b9 revert back gitignore to include dishes 2025-12-10 21:27:45 +01:00
674b34d441 Merge pull request 'add fast_commit and encrypt filesystem feature for ext4. Encrypt is a prerequisite for fscrypt support. Fast_commit is a faster journaling method.' (#2) from ext4-improvement into main
Reviewed-on: #2
2025-12-10 16:18:33 +00:00
de5acaf289 Merge branch 'main' into ext4-improvement 2025-12-10 16:18:25 +00:00
Lukas Greve
b028260090 weak security to enable easier debugging 2025-12-09 22:33:51 +01:00
Lukas Greve
1fbe496b6a the proper syntax for firstboot enabling 2025-12-09 22:33:15 +01:00
Lukas Greve
ae4ffdc64d updated gitignore. Let's not track changes to complete kickstart files. It goes in the way 2025-12-09 22:32:40 +01:00
8cc2c13c66 Merge pull request 'tweak the security settings, to allow root login for debuging purposes (i.e. when initial-setup does not work)' (#1) from lax-security-settings into main
Reviewed-on: #1
2025-12-09 21:22:45 +00:00
Lukas Greve
35deff93b3 tweak the security settings, to allow root login for debuging purposes (i.e. when initial-setup does not work) 2025-12-09 22:20:47 +01:00
32 changed files with 103 additions and 145 deletions

2
.gitignore vendored
View File

@@ -1 +1,3 @@
.aider*
# dishes/
# !dishes/

View File

@@ -3,7 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -17,9 +17,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone

View File

@@ -3,7 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -17,9 +17,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone

View File

@@ -3,7 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -17,9 +17,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone

View File

@@ -3,7 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -17,9 +17,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone

View File

@@ -3,7 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -17,9 +17,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone

View File

@@ -1,7 +1,7 @@
# Generated by pykickstart v3.62
#version=DEVEL
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -15,9 +15,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone

View File

@@ -1,7 +1,7 @@
# Generated by pykickstart v3.62
#version=DEVEL
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -15,9 +15,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone

View File

@@ -1,7 +1,7 @@
# Generated by pykickstart v3.62
#version=DEVEL
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -15,9 +15,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone

View File

@@ -1,7 +1,7 @@
# Generated by pykickstart v3.62
#version=DEVEL
# Firewall configuration
firewall --disabled
firewall --enabled
# Run the Setup Agent on first boot
firstboot --reconfig
# Keyboard layouts
@@ -15,9 +15,9 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --iscrypted --lock locked
rootpw --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone

View File

@@ -3,9 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --reconfig
firewall --enabled --service=ssh
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
@@ -17,7 +15,7 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
rootpw --plaintext --allow-ssh 1234
# SELinux configuration
selinux --disabled
# System services
@@ -39,27 +37,6 @@ part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winn
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%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
%end
%post --nochroot --logfile=/mnt/sysimage/root/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/root/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
@@ -250,7 +227,6 @@ generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
hostname

View File

@@ -3,9 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --reconfig
firewall --enabled --service=ssh
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
@@ -17,7 +15,7 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
rootpw --plaintext --allow-ssh 1234
# SELinux configuration
selinux --disabled
# System services
@@ -39,27 +37,6 @@ part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winn
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%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
%end
%post --nochroot --logfile=/mnt/sysimage/root/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/root/base-desktop-gnome.log
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
@@ -157,7 +134,6 @@ generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
hostname

View File

@@ -3,9 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --reconfig
firewall --enabled --service=ssh
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
@@ -17,7 +15,7 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
rootpw --plaintext --allow-ssh 1234
# SELinux configuration
selinux --disabled
# System services
@@ -37,13 +35,6 @@ part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winn
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%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
%end
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor.log
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
@@ -98,7 +89,6 @@ generic-release-common
generic-release-notes
glibc
hostname
initial-setup
iproute
iputils
kbd

View File

@@ -3,9 +3,7 @@
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --reconfig
firewall --enabled --service=ssh
# Keyboard layouts
keyboard --xlayouts='ch (fr)'
# System language
@@ -17,7 +15,7 @@ shutdown
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
# Root password
rootpw --iscrypted --lock locked
rootpw --plaintext --allow-ssh 1234
# SELinux configuration
selinux --disabled
# System services
@@ -37,13 +35,6 @@ part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winn
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%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
%end
%packages --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
@@ -68,7 +59,6 @@ generic-release-common
generic-release-notes
glibc
hostname
initial-setup
iproute
iputils
kbd

View File

@@ -1,4 +1,4 @@
firstboot --reconfig # Initial Setup will start after the first reboot
firstboot --enable --reconfig # Initial Setup will start after the first reboot
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.

View File

@@ -1,4 +1,4 @@
firstboot --reconfig # Enable the Setup Agent to start at boot time in reconfiguration mode. This mode enables the language, mouse, keyboard, root password, security level, time zone, and networking configuration options in addition to the default ones
firstboot --enable --reconfig # Enable the Setup Agent to start at boot time in reconfiguration mode. This mode enables the language, mouse, keyboard, root password, security level, time zone, and networking configuration options in addition to the default ones
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies

View File

@@ -1,3 +1,3 @@
rootpw --lock --iscrypted locked # Lock the root account. Can still be undone by end-user during initial setup
selinux --disabled # Disable SELinux ; other option: --enable
firewall --disabled # Disable firewall
rootpw --plaintext 1234 --allow-ssh # Root account is enabled with weak password and allow ssh
selinux --disabled # Disable SELinux
firewall --enabled --ssh # Reject incoming connections that are not in response to outbound requests except SSH

View File

@@ -1,3 +1,3 @@
rootpw --lock --iscrypted locked # Lock the root account. Can still be undone by end-user during initial setup
selinux --enabled # Enable SELinux ; other option: --disabled
rootpw --lock # No root login from the console
selinux --enforcing # Set SELinux to enforcing mode
firewall --enabled # Enable firewall

View File

@@ -11,7 +11,7 @@
%include ../ingredients/core-storage.cfg # Storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -12,7 +12,7 @@
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -11,7 +11,7 @@
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -11,7 +11,7 @@
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -11,7 +11,7 @@
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -11,7 +11,7 @@
%include ../ingredients/live-core-storage.cfg # For live systems only
%include ../ingredients/live-core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -11,7 +11,7 @@
%include ../ingredients/live-core-storage.cfg # For live systems only
%include ../ingredients/live-core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -11,7 +11,7 @@
%include ../ingredients/live-core-storage.cfg # For live systems only
%include ../ingredients/live-core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -11,7 +11,7 @@
%include ../ingredients/live-core-storage.cfg # For live systems only
%include ../ingredients/live-core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-on.cfg # Lock root account, enable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages

View File

@@ -5,20 +5,18 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# A recipe for virtual desktop hypervisor
# Unsafe. Development-only. A recipe for a virtual desktop hypervisor
%include ../ingredients/core.cfg # Text mode
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-off.cfg # Enable root account, disable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Triggered after the installation
%include ../ingredients/core-initial-setup-desktop.cfg # OEM setup for GNOME Shell
%include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # Virtual Machine Manager
%include ../ingredients/base-hypervisor.cfg # Base hypervisor

View File

@@ -5,19 +5,17 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# A recipe for a virtual desktop
# Unsafe. Development-only. A recipe for a virtual desktop
%include ../ingredients/core.cfg # Text mode
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-off.cfg # Enable root account, disable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Triggered after the installation
%include ../ingredients/core-initial-setup-desktop.cfg # OEM setup for GNOME Shell
%include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment
%include ../ingredients/base-guest-agents.cfg # Guest agents

View File

@@ -5,19 +5,17 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# A recipe for a virtual headless hypervisor
# # Unsafe. Development-only. A recipe for a virtual headless hypervisor
%include ../ingredients/core.cfg # Text mode
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-off.cfg # Enable root account, disable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Triggered after the installation
%include ../ingredients/core-initial-setup-server.cfg # For headless systems
%include ../ingredients/base-hypervisor.cfg # Base hypervisor
%include ../ingredients/base-guest-agents.cfg # Guest agents

View File

@@ -5,18 +5,16 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# A recipe for a virtual desktop
# # Unsafe. Development-only. A recipe for a virtual server
%include ../ingredients/core.cfg # Text mode
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GRUB
%include ../ingredients/core-locale.cfg # System locale set to Swiss French as keyboard layout and English as language
%include ../ingredients/core-security-off.cfg # Lock root account, disable firewall and SELinux
%include ../ingredients/core-security-off.cfg # Enable root account, disable firewall and SELinux
%include ../ingredients/core-services.cfg # Required systemd services
%include ../ingredients/core-network.cfg # Network configuration
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Triggered after the installation
%include ../ingredients/core-initial-setup-server.cfg # For headless systems
%include ../ingredients/base-guest-agents.cfg # Guest agents

View File

@@ -4,6 +4,28 @@
DEFAULT_MEMORY=4096
DEFAULT_DISK_SIZE=10
# Function to find Fedora ISO
find_fedora_iso() {
local iso_dir="/var/lib/libvirt/isos"
local fedora_iso=""
# Check if directory exists
if [ -d "$iso_dir" ]; then
# Find the first Fedora-Server*.iso file
fedora_iso=$(find "$iso_dir" -maxdepth 1 -name "Fedora-Server*.iso" -type f | head -n 1)
# If found, return the full path
if [ -n "$fedora_iso" ] && [ -f "$fedora_iso" ]; then
echo "$fedora_iso"
return 0
fi
fi
# Return empty if no ISO found
echo ""
return 1
}
# Prompt user for VM memory size
read -r -p "Provide desired VM memory in MB or press Enter to keep default value of $DEFAULT_MEMORY MB): " memory_size
memory_size=${memory_size:-$DEFAULT_MEMORY}
@@ -98,6 +120,16 @@ vm_name="${dish_name[$((choice - 1))]}"
# Output the selected filename
echo "You selected: $vm_name"
# Find Fedora ISO or use default location
fedora_iso=$(find_fedora_iso)
if [ -n "$fedora_iso" ]; then
location_param="$fedora_iso"
echo "Using local ISO: $fedora_iso"
else
location_param="https://download.fedoraproject.org/pub/fedora/linux/releases/43/Everything/x86_64/os/"
echo "Using default online repository"
fi
# virt-install command with user-defined VM name
virt-install \
--connect "$uri" \
@@ -129,7 +161,7 @@ virt-install \
--watchdog none \
--memballoon none \
--disk path="${disk_path}/${vm_name}.img",format=raw,bus=virtio,cache=writeback,size="$disk_size" \
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/43/Everything/x86_64/os/ \
--location="$location_param" \
--initrd-inject ./dishes/"$vm_name".cfg \
--extra-args "inst.ks=file:/$vm_name.cfg"