72 Commits

Author SHA1 Message Date
Lukas Greve
876e4b31aa nocore everywhere 2025-12-11 22:20:54 +01:00
ab8f9af755 Merge pull request 'Add local ISO detection functionality to deploy-distro.sh' (#4) from local-iso into main
Reviewed-on: #4
2025-12-11 20:59:06 +00:00
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
cabebbcedf add fast_commit and encrypt filesystem feature for ext4. Encrypt is a prerequisite for fscrypt support. Fast_commit is a faster journaling method. 2025-12-10 17:17:39 +01: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
Lukas Greve
a186c60e9a add these changes to nano branch 2025-12-09 17:03:18 +01:00
Lukas Greve
9400b239f8 test new ingredient.
Now not working. The idea would be to deploy a system from a squashfs.img image, to avoid having to redownload all packages
2025-11-21 11:04:41 +01:00
Lukas Greve
740557564d test new workflow to release ISO 2025-11-17 16:36:53 +01:00
Lukas Greve
f612842e50 explicitly mention fedora 43 2025-11-13 21:28:28 +01:00
Lukas Greve
37c8c925dd updated recipes version 2025-11-13 20:31:05 +01:00
Lukas Greve
b721ec7b59 bump to fedora 43 2025-11-13 20:30:11 +01:00
Lukas Greve
ab9aa58eb2 fix what looks like an embarassing regression
we need to specify arch and version, or have env  variable somehwhere do it for us. As of now, it seems safer to hardcode it.
2025-11-13 20:29:55 +01:00
Lukas Greve
7fced10c52 switch local to Zurich 2025-11-13 20:05:22 +01:00
Lukas Greve
59c82dd9c3 improve comment 2025-11-13 20:05:07 +01:00
Lukas Greve
461936a841 add some comment 2025-11-13 20:04:49 +01:00
Lukas Greve
7c3571f8e6 update comment to match reality 2025-10-16 12:08:39 +02:00
Lukas Greve
7ffc71043d reverting back to GRUB 2025-10-15 14:47:02 +02:00
Lukas Greve
a8dcf4011c moving to no-secure-boot, and more generally a simpler virtual machine definition 2025-10-15 14:46:40 +02:00
Lukas Greve
28b3e927a6 fix comment 2025-10-10 12:58:26 +02:00
Lukas Greve
06caf5b3c7 increase size of efi partition and explicitly list mbr for the location of the bootloader 2025-10-10 12:58:09 +02:00
Lukas Greve
5da0303cf5 add Spice and listen to all interfaces by default 2025-10-10 12:07:52 +02:00
Lukas Greve
de48f21335 remove grub conf 2025-10-07 15:35:07 +02:00
Lukas Greve
7ae6714da1 remove grub conf 2025-10-07 15:34:56 +02:00
Lukas Greve
246fba3efa switch to systemd-boot 2025-09-07 20:17:05 +02:00
Lukas Greve
2e56372e6d new systemd-boot ingredient for live systems 2025-09-07 20:15:20 +02:00
Lukas Greve
515950daad move to root directory 2025-09-05 18:04:55 +02:00
Lukas Greve
1fecc5ea1b adjust list of packages
packages related to libvirt are explicitly picked
2025-09-05 18:04:01 +02:00
Lukas Greve
8c2b118c8e add curl 2025-07-13 20:53:28 +02:00
Lukas Greve
dd41bcb66b refine the package selection 2025-07-13 20:53:21 +02:00
Lukas Greve
e9e70c6ce3 add gitignore file, excluding aider 2025-07-13 20:53:09 +02:00
Lukas Greve
6a043dcd3d move and rename list of ingredients 2025-07-01 21:28:50 +02:00
Lukas Greve
cf3ff84a6d new script to install prerequisites on common Linux distribution 2025-07-01 21:28:33 +02:00
Lukas Greve
46bbe1d5e9 add a iommu device in the automated VM deployment and set memballon to disable 2025-06-17 14:51:14 +02:00
Lukas Greve
b98f41512d restore variables for setting specific path and networking for session and system URI 2025-06-15 17:14:31 +02:00
Lukas Greve
8c96623ad7 make selection or URI options for qemu more robust. Allow the user to just use Enter
Only allow selection of files that starts with virtual (this script is only used to deploy virtual machine)

Reworked some comments
2025-06-15 14:32:46 +02:00
Lukas Greve
358e67a041 remove whitespace 2025-06-15 14:31:00 +02:00
Lukas Greve
3b4724cf86 Removing information to the user when script goes through. 2025-06-15 14:30:48 +02:00
Lukas Greve
684a49af14 no need to echo when it succeeds 2025-06-15 14:30:00 +02:00
Lukas Greve
e1207278a3 Add possibility to pick URI, from session to system 2025-06-08 11:51:15 +02:00
Lukas Greve
00f40553b5 Document th script 2025-06-04 20:00:08 +02:00
Lukas Greve
0316eff669 rename file 2025-05-29 17:50:29 +02:00
Lukas Greve
c458ab4b5c add ability to pick memory and disk size 2025-05-29 17:49:30 +02:00
Lukas Greve
02f2a131bf add pipewire and gnome-control-center to desktop editions 2025-05-29 17:48:59 +02:00
Lukas Greve
6cfad2d5eb move file 2025-05-29 17:48:37 +02:00
Lukas Greve
5c7a5713b9 bump hardware requirements, change default network, correct paths 2025-05-22 18:14:47 +02:00
Lukas Greve
63456e0e16 bump hardware requirements 2025-05-22 18:10:43 +02:00
Lukas Greve
01326af9d8 fix bug related to path
the extra-args should refer to the file, irrespective of its location.
2025-05-22 16:48:07 +02:00
Lukas Greve
be2f5cf7a2 rename code of conduct 2025-05-21 18:18:50 +02:00
Lukas Greve
66773b8e23 change where logs are stored 2025-05-21 17:50:58 +02:00
Lukas Greve
4bd6294efe new dish 2025-05-21 17:50:40 +02:00
Lukas Greve
7d9af8f39e rename code of conduct file for consistency 2025-05-21 17:40:51 +02:00
Lukas Greve
8c1c11fda7 add reference to the script 2025-05-21 17:36:12 +02:00
Lukas Greve
3fafb78838 new script / wrapper around virt-install 2025-05-21 17:35:57 +02:00
Lukas Greve
1dfc10b5c9 Add requirements 2025-05-19 19:59:01 +02:00
Lukas Greve
6089cb118a Add new explanation related to ingredients 2025-05-19 19:56:03 +02:00
Lukas Greve
fee6d59831 move explanation of list of ingredients into the README 2025-05-19 19:55:09 +02:00
58 changed files with 1023 additions and 511 deletions

View File

@@ -0,0 +1,76 @@
name: release
on:
push:
branches:
- main # Or your desired branch
jobs:
checkout:
runs-on: fedora-cloud-42
defaults:
run:
shell: bash
container:
image: git.phyllo.me/devops/fedora-runner-image:latest
steps:
- uses: https://git.phyllo.me/devops/checkout@v5
with:
fetch-depth: 0
- name: Initialize mock
run: |
mock -r fedora-43-x86_64 --init
- name: Install required packages
run: |
mock -r fedora-43-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
- name: Copy configuration file to mock
run: |
mock -r fedora-43-x86_64 --copyin dishes/live-server.cfg /builddir
- name: Build ISO with livemedia-creator
run: |
mock -r fedora-43-x86_64 --shell --enable-network --isolation=simple << 'EOF'
cd /builddir
livemedia-creator --ks live-server.cfg --no-virt --resultdir /var/lmc --project live-desktop-hypervisor --make-iso --volid live-desktop-hypervisor --iso-only --iso-name server-43.iso --releasever 43 --macboot
EOF
- name: Upload ISO as artifact
uses: actions/upload-artifact@v3
with:
name: server-43.iso
path: /var/lmc/server-43.iso
if-no-files-found: error
- name: Create Release
if: github.ref == 'refs/heads/main'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: iso-build-${{ github.run_number }}
release_name: ISO Build ${{ github.run_number }}
body: |
Build artifact from workflow run ${{ github.run_number }}
ISO file: server-43.iso
draft: false
prerelease: false
- name: Upload ISO to Release
if: github.ref == 'refs/heads/main'
uses: actions/upload-release-asset@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: /var/lmc/server-43.iso
asset_name: server-43.iso
asset_content_type: application/x-iso9660-image
- name: Cleanup mock environment
if: always()
run: |
mock -r fedora-43-x86_64 --clean

3
.gitignore vendored Normal file
View File

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

145
README.md
View File

@@ -2,6 +2,41 @@
[Phyllome OS](https://wiki.phyllo.me/phyllomeos/context) uses the [kickstart installation method](https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-1-introduction) to deploy itself to a specific target computer or virtual machine by means of kickstart files.
Provided that some dependencies are met (`libvirt` is running on your computer, QEMU is installed, etc), one could run the following script to deploy virtual machines, including Phyllome OS itself.
- Make the script executable:
```
chmod +x deploy-vm.sh
```
- Execute it and pick `virtual-desktop-hypervisor` when prompted:
```
./deploy-vm.sh
Executing: ./scripts/core-count.sh
System has more than 2 core (nproc --all: 6).
[...]
10. virtual-desktop-hypervisor
[...]
Enter the number of the file you want to select: 10
You selected: virtual-desktop-hypervisor
Starting install...
Retrieving 'vmlinuz' | 16 MB 00:00:00
Retrieving 'initrd.img' | 161 MB 00:00:05
Allocating 'virtinst-n0km88yy-vmlinuz' | 16 MB 00:00:00
Transferring 'virtinst-n0km88yy-vmlinuz' | 16 MB 00:00:00
Allocating 'virtinst-qxr2jxcb-initrd.img' | 161 MB 00:00:00
Transferring 'virtinst-qxr2jxcb-initrd.img' | 161 MB 00:00:00
Allocating 'virtual-desktop-hypervisor.img' | 10 GB 00:00:00
Creating domain...
```
After a successfull installation, the virtual machine will shutdown and be ready to use when powered on again.
## Repository structure
This repository contains such files broken down as:
* `ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄: the basic building blocks for assembling Phyllome OS and other derivatives.
@@ -10,11 +45,22 @@ This repository contains such files broken down as:
* `dishes`🥨 🥐 🥖 🥧 🥞 🥯 🧆 🧁: read-to-consume and standalone kickstart artifacts, which can be used to deploy complete systems
Each ingredient represents a feature or a set of integrated features, such as a specific Desktop Environment or a storage configuration.
- Ingredients prefixed with *live* such as `live-core.cfg` are to be used with live editions only
- *core* ingredients are meant be used in all their respective recipes, *base* ingredients, recommended but optional, and extra provides more stuff (sic)
## Development
Using a pull request, you can suggest a modification to an existing ingredient or create a new ingredient from scratch.
### Example: add a new package and include it into a recipe
### Requirements
- `qemu`
- `libvirt`
- `virt-install`
- `pykickstart`
### Example 1: add a new package and include it into a recipe
- Add [Luanti](https://www.luanti.org/), a free and open-source sandbox video game engine formerly known as Minetest, as a standalone ingredient, using the `echo` command
@@ -29,7 +75,7 @@ luanti # Multiplayer infinite-world block sandbox with survival mode
Instead of creating a recipe from scratch, let's make a copy of the `virtual-desktop.cfg` recipe, which provide a Desktop environment necessary for *luanti* to function
```
$ cp recipes/virtual-desktop.cfg recipes/virtual-desktop-luanti.cfg
cp recipes/virtual-desktop.cfg recipes/virtual-desktop-luanti.cfg
```
- Add the extra ingredient to the new recipe:
@@ -38,53 +84,40 @@ $ cp recipes/virtual-desktop.cfg recipes/virtual-desktop-luanti.cfg
echo "%include ../ingredients/extra-luanti.cfg # Sandbox video game engine" >> recipes/virtual-desktop-luanti.cfg
```
#### Flatten
- Prepare the dish by following the recipe, a process called 'flattening'
```
$ ksflatten -c recipes/virtual-desktop-luanti.cfg -o dishes/virtual-desktop-luanti.cfg
ksflatten -c recipes/virtual-desktop-luanti.cfg -o dishes/virtual-desktop-luanti.cfg
```
> If any errors are detected, go back and fix them.
It is time to test the new dish!
- Navigate inside the `dishes` folder:
#### Kickstart
- Make the `deploy-vm.sh` script executable
```
$ cd dishes/
chmod +x deploy-vm.sh
```
* You can then kickstart your own installation:
- Execute the script
```
# virt-install \
--connect qemu:///system \
--metadata description="Virtual desktop with Luanti" \
--os-variant fedora41 \
--virt-type kvm \
--arch x86_64 \
--machine q35 \
--name virtual-desktop-luanti \
--boot uefi \
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \
--vcpus 2 \
--memory 4096 \
--video virtio \
--graphics spice,listen=none \
--channel spicevmc \
--autoconsole none \
--console pty,target.type=virtio \
--sound none \
--network type=user,model=virtio \
--controller type=virtio-serial \
--controller type=usb,model=none \
--controller type=scsi,model=virtio-scsi \
--input type=keyboard,bus=virtio \
--input type=tablet,bus=virtio \
--rng /dev/urandom,model=virtio \
--disk path=/var/lib/libvirt/images/virtual-desktop-luanti.img,format=raw,bus=virtio,cache=writeback,size=10 \
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/42/Everything/x86_64/os/ \
--initrd-inject virtual-desktop-luanti.cfg --extra-args "inst.ks=file:virtual-desktop-luanti.cfg"
./deploy-vm.sh
```
- Select the new dish, *virtual-desktop-luanti*
```
[...]
Available files:
1. desktop-hypervisor-amdcpu
[...]
14. virtual-desktop-luanti
```
- When the installation is done, the machine will shut down
@@ -93,6 +126,48 @@ $ cd dishes/
That's it !
### Example 2: Create a new recipe from the existing list of ingredients
The file `recipes/_list-of-ingredients.cfg` can be copied and edited to create your own remix of Phyllome OS, which itself is a remix of Fedora.
```
cp recipes/_list-of-ingredients.cfg recipes/my-new-distro.cfg
```
Then edit the said file to include your favorite ingredient
```
nano recipes/my-new-distro.cfg
```
```
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# The list of ingredients for composing Phyllome OS
# Uncomment lines with "%include" to enable ingredient
# Installation method
# Exactly one option has to be picked
# %include ../ingredients/core.cfg # Text mode
# %include ../ingredients/live-core.cfg # For live systems only
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#graphical-or-text-or-cmdline
# Storage configuration
# Exactly one option has to be picked
# WARNING !!! Will erase local disks!
# %include ../ingredients/core-storage.cfg # Basic ext4 partition layout for UEFI-based systems
# %include ../ingredients/live-core-storage.cfg # For live systems only
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#part-or-partition
[...]
```
- Once you are done, you can [flatten](#flatten) the file and [kickstart](#kickstart) it as explained in the previous section.
## FAQ
If multiple dishes are affected by your ingredient, you can flatten them all
@@ -109,7 +184,7 @@ cd recipes
for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
```
The following message can be discarded:
The following message can safetly be ignored:
```
/usr/lib/python3.13/site-packages/pykickstart/commands/partition.py:461: KickstartParseWarning: A partition with the mountpoint / has already been defined.

View File

@@ -7,19 +7,6 @@
# The list of ingredients for composing Phyllome OS
# Uncomment lines with "%include" to enable ingredient
Each ingredient represents a feature or a set of integrated features, such as a specific Desktop Environment or a storage configuration.
- Ingredients prefixed with live such as live-core.cfg are to be used with live editions only
- *core* ingredients are meant be used in all their respective recipes, *base* ingredients, recommended but optional, and extra, extra stuff (sic)
`cat ingredients/core-storage.cfg`
```
[...]
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an EFI system partitition of 128 MiB (vda1)
part /boot --fstype="ext4" --size=512 --label=boot # Create a boot partition of 512 MiB using the ext4 filesystem (vda2)
part / --fstype="ext4" --grow --label=root # The remaining space will be used for root (vda3)
```
# Installation method
# Exactly one option has to be picked
@@ -76,7 +63,7 @@ part / --fstype="ext4" --grow --label=root # The remaining space will be used fo
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-9-package-selection
# Pre- and post-installation sections
# Optional
# Optional
# All options can be picked
# %include ../ingredients/pre.cfg # Triggered just after the kickstart file has been parsed
# Documentation: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-4-pre-installation-script
@@ -95,7 +82,7 @@ part / --fstype="ext4" --grow --label=root # The remaining space will be used fo
# %include ../ingredients/core-desktop-initial-setup.cfg # Ensures that GNOME initial setup will launch on the first system start-up
# %include ../ingredients/core-server-initial-setup.cfg # For headless systems
# A GNOME Shell-based desktop environment.
# A GNOME Shell-based desktop environment
# Optional
# %include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment
# Documentation: https://fedoraproject.org/wiki/InitialSetup

27
deploy.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
# Function to execute a script
execute_script() {
local script_to_execute="$1"
echo "Executing: $script_to_execute"
"$script_to_execute" || {
echo "Script failed: $script_to_execute"
return 1 # Indicate failure
}
return 0 # Indicate success
}
# Array of scripts
scripts=(
"./scripts/install-prerequisites-on-linux.sh"
"./scripts/core-count.sh"
"./scripts/system-memory.sh"
"./scripts/deploy-distro.sh"
)
# Iterate through the scripts and execute them
for script in "${scripts[@]}"; do
execute_script "$script"
done
echo "All scripts executed."

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
@@ -14,18 +14,18 @@ lang en_US.UTF-8
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
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 --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
@@ -35,15 +35,14 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
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
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end
@@ -223,7 +222,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-amdcpu.log
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor-amdcpu.log
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
@@ -231,7 +230,7 @@ echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add s
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
@@ -265,10 +264,10 @@ generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
hostname
intel-audio-firmware
intel-gpu-firmware
@@ -282,11 +281,22 @@ kbd
kernel
less
libertas-firmware
libguestfs-tools
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
@@ -299,11 +309,13 @@ openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
python3-libguestfs
qemu-kvm
realtek-firmware
rootfiles
@@ -322,7 +334,6 @@ util-linux
vim-minimal
virt-install
virt-manager
virt-top
wget
wpa_supplicant
zram-generator-defaults

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
@@ -14,18 +14,18 @@ lang en_US.UTF-8
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
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 --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
@@ -35,15 +35,14 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
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
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end
@@ -223,7 +222,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor-intelcpu.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
@@ -241,7 +240,7 @@ echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specif
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
@@ -275,10 +274,10 @@ generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
hostname
intel-audio-firmware
intel-gpu-firmware
@@ -292,11 +291,22 @@ kbd
kernel
less
libertas-firmware
libguestfs-tools
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
@@ -309,11 +319,13 @@ openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
python3-libguestfs
qemu-kvm
realtek-firmware
rootfiles
@@ -332,7 +344,6 @@ util-linux
vim-minimal
virt-install
virt-manager
virt-top
wget
wpa_supplicant
zram-generator-defaults

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
@@ -14,18 +14,18 @@ lang en_US.UTF-8
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
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 --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
@@ -35,15 +35,14 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
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
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end
@@ -223,7 +222,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor-intelcpu.log
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
@@ -231,7 +230,7 @@ echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
@@ -265,10 +264,10 @@ generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
hostname
intel-audio-firmware
intel-gpu-firmware
@@ -282,11 +281,22 @@ kbd
kernel
less
libertas-firmware
libguestfs-tools
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
@@ -299,11 +309,13 @@ openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
python3-libguestfs
qemu-kvm
realtek-firmware
rootfiles
@@ -322,7 +334,6 @@ util-linux
vim-minimal
virt-install
virt-manager
virt-top
wget
wpa_supplicant
zram-generator-defaults

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
@@ -14,18 +14,18 @@ lang en_US.UTF-8
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
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 --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
@@ -35,15 +35,14 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
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
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end
@@ -223,7 +222,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
@@ -257,10 +256,10 @@ generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
hostname
intel-audio-firmware
intel-gpu-firmware
@@ -274,11 +273,22 @@ kbd
kernel
less
libertas-firmware
libguestfs-tools
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
@@ -291,11 +301,13 @@ openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
python3-libguestfs
qemu-kvm
realtek-firmware
rootfiles
@@ -314,7 +326,6 @@ util-linux
vim-minimal
virt-install
virt-manager
virt-top
wget
wpa_supplicant
zram-generator-defaults

223
dishes/desktop.cfg Normal file
View File

@@ -0,0 +1,223 @@
# Generated by pykickstart v3.62
#version=DEVEL
# Use text mode install
text
# Firewall configuration
firewall --enabled
# 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-43&arch=x86_64
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
#Root password
rootpw --lock
# SELinux configuration
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# 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=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
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
# [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
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
alsa-sof-firmware
amd-gpu-firmware
atheros-firmware
audit
b43-fwcutter
b43-openfwwf
basesystem
bash
brcmfmac-firmware
cirrus-audio-firmware
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-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
hostname
intel-audio-firmware
intel-gpu-firmware
intel-vsc-firmware
iproute
iputils
iwlegacy-firmware
iwlwifi-dvm-firmware
iwlwifi-mvm-firmware
kbd
kernel
less
libertas-firmware
libusb
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
mt7xxx-firmware
nano
ncurses
nvidia-gpu-firmware
nxpwireless-firmware
openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
realtek-firmware
rootfiles
rpm
selinux-policy-targeted
setup
shadow-utils
sssd-common
sssd-kcm
sudo
systemd
systemd-resolved
tiwilink-firmware
usbutils
util-linux
vim-minimal
wget
wpa_supplicant
zram-generator-defaults
-gnome-tour
%end

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
@@ -12,18 +12,18 @@ lang en_US.UTF-8
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
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 --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
@@ -40,7 +40,6 @@ part / --size=8576
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
@@ -279,7 +278,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
@anaconda-tools
NetworkManager
NetworkManager-config-connectivity-fedora
@@ -317,10 +316,10 @@ generic-release-notes
glibc
glibc-all-langpacks
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
guestfs-tools
hostname
intel-audio-firmware
intel-gpu-firmware
@@ -336,11 +335,22 @@ kernel-modules
kernel-modules-extra
less
libertas-firmware
libguestfs-tools
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
livesys-scripts
man-db
mesa-dri-drivers
@@ -354,11 +364,13 @@ openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
python3-libguestfs
qemu-kvm
realtek-firmware
rootfiles
@@ -377,7 +389,6 @@ util-linux
vim-minimal
virt-install
virt-manager
virt-top
wget
wpa_supplicant
zram-generator-defaults

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
@@ -12,18 +12,18 @@ lang en_US.UTF-8
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
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 --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
@@ -40,7 +40,6 @@ part / --size=8576
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
@@ -186,7 +185,7 @@ glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
@anaconda-tools
NetworkManager
NetworkManager-config-connectivity-fedora
@@ -224,6 +223,7 @@ generic-release-notes
glibc
glibc-all-langpacks
gnome-backgrounds.noarch
gnome-control-center
gnome-initial-setup
gnome-shell
gnome-terminal
@@ -256,6 +256,9 @@ openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname

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
@@ -12,18 +12,18 @@ lang en_US.UTF-8
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
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 --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# System bootloader configuration
bootloader --location=none --timeout=1
# Clear the Master Boot Record
@@ -38,7 +38,6 @@ part / --size=8576
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
@@ -131,7 +130,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
@anaconda-tools
NetworkManager
NetworkManager-config-connectivity-fedora
@@ -165,7 +164,6 @@ generic-release-common
generic-release-notes
glibc
glibc-all-langpacks
guestfs-tools
hostname
initial-setup
intel-audio-firmware
@@ -182,11 +180,22 @@ kernel-modules
kernel-modules-extra
less
libertas-firmware
libguestfs-tools
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
livesys-scripts
man-db
mt7xxx-firmware
@@ -202,7 +211,6 @@ plymouth
policycoreutils
prefixdevname
procps-ng
python3-libguestfs
qemu-kvm
realtek-firmware
rootfiles
@@ -220,7 +228,6 @@ usbutils
util-linux
vim-minimal
virt-install
virt-top
wget
zram-generator-defaults

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
@@ -12,18 +12,18 @@ lang en_US.UTF-8
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
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 --lock
# SELinux configuration
selinux --disabled
selinux --enforcing
# System services
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# System bootloader configuration
bootloader --location=none --timeout=1
# Clear the Master Boot Record
@@ -38,7 +38,6 @@ part / --size=8576
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
@@ -101,7 +100,7 @@ sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
@anaconda-tools
NetworkManager
NetworkManager-config-connectivity-fedora

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
@@ -14,18 +12,18 @@ lang en_US.UTF-8
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
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
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
@@ -35,31 +33,9 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot/efi --fstype="efi" --size=2048 --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/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
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/base-desktop-gnome.log
@@ -223,7 +199,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
@@ -250,21 +226,31 @@ generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-initial-setup
gnome-control-center
gnome-shell
gnome-terminal
guestfs-tools
hostname
iproute
iputils
kbd
kernel
less
libguestfs-tools
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
man-db
mesa-dri-drivers
mozilla-ublock-origin.noarch
@@ -274,11 +260,13 @@ openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname
procps-ng
python3-libguestfs
qemu-guest-agent
qemu-kvm
rootfiles
@@ -297,7 +285,6 @@ util-linux
vim-minimal
virt-install
virt-manager
virt-top
wget
wpa_supplicant
zram-generator-defaults

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
@@ -14,18 +12,18 @@ lang en_US.UTF-8
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
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
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# X Window System configuration information
xconfig --defaultdesktop=GNOME --startxonboot
# System bootloader configuration
@@ -35,31 +33,9 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot/efi --fstype="efi" --size=2048 --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/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
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/base-desktop-gnome.log
@@ -130,7 +106,7 @@ glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
NetworkManager-wifi
@@ -157,7 +133,7 @@ generic-release-common
generic-release-notes
glibc
gnome-backgrounds.noarch
gnome-initial-setup
gnome-control-center
gnome-shell
gnome-terminal
hostname
@@ -176,6 +152,9 @@ openssh-clients
openssh-server
parted
pciutils
pipewire-alsa
pipewire-jack-audio-connection-kit
pipewire-pulseaudio
plymouth
policycoreutils
prefixdevname

View File

@@ -1,88 +0,0 @@
# 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,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
# System bootloader configuration
bootloader --location=mbr --timeout=1 --sdboot
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --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
%packages --exclude-weakdeps
basesystem
bash
curl
dhcp-client
dnf5
dracut
filesystem
glibc
hostname
initial-setup
iproute
iputils
kbd
kernel
ncurses
parted
procps-ng
qemu-guest-agent
rootfiles
rpm
setup
shadow-utils
spice-vdagent
systemd
util-linux
-audit
-coreutils
-e2fsprogs
-less
-man-db
-openssh-clients
-openssh-server
-policycoreutils
-selinux-policy-targeted
-sssd-common
-sssd-kcm
-sudo
-vim-minimal
%end

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
@@ -14,18 +12,18 @@ lang en_US.UTF-8
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
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
services --enabled="NetworkManager,systemd-resolved,libvirtd"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
@@ -33,17 +31,9 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot/efi --fstype="efi" --size=2048 --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
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor.log
@@ -75,7 +65,7 @@ mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso image
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
audit
@@ -98,19 +88,28 @@ generic-release
generic-release-common
generic-release-notes
glibc
guestfs-tools
hostname
initial-setup
iproute
iputils
kbd
kernel
less
libguestfs-tools
libusb
libvirt
libvirt-client
libvirt-client-qemu
libvirt-daemon
libvirt-daemon-common
libvirt-daemon-config-network
libvirt-daemon-driver-ch
libvirt-daemon-driver-interface
libvirt-daemon-driver-network
libvirt-daemon-driver-qemu
libvirt-daemon-kvm
libvirt-daemon-log
libvirt-daemon-qemu
libvirt-dbus
libvirt-nss
man-db
nano
ncurses
@@ -122,7 +121,6 @@ plymouth
policycoreutils
prefixdevname
procps-ng
python3-libguestfs
qemu-guest-agent
qemu-kvm
rootfiles
@@ -140,7 +138,6 @@ usbutils
util-linux
vim-minimal
virt-install
virt-top
wget
zram-generator-defaults

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
@@ -14,18 +12,18 @@ lang en_US.UTF-8
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
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
services --enabled="NetworkManager,systemd-resolved"
# System timezone
timezone Europe/Paris --utc
timezone Europe/Zurich --utc
# Use network installation
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64"
# System bootloader configuration
bootloader --location=mbr --timeout=1
# Clear the Master Boot Record
@@ -33,19 +31,11 @@ zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi
part /boot --fstype="ext4" --size=512 --label=boot
part / --fstype="ext4" --grow --label=root
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
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
%end
%packages --exclude-weakdeps
%packages --nocore --exclude-weakdeps
NetworkManager
NetworkManager-config-connectivity-fedora
audit
@@ -69,7 +59,6 @@ generic-release-common
generic-release-notes
glibc
hostname
initial-setup
iproute
iputils
kbd

View File

@@ -1,9 +1,10 @@
xconfig --startxonboot --defaultdesktop=GNOME # Start the display session on boot. Although it says --startx, which seems to imply xorg, it is actually generic and thus works also with Wayland.
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak dependencies
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
gnome-shell # the version 3 of the GNOME desktop environment, without any presintalled applications
gnome-terminal # install the default terminal for GNOME Shell
gnome-control-center # Utilities to configure the GNOME desktop
-gnome-tour # delete GNOME Tour so it doesn't automatically launch on boot
mesa-dri-drivers # add mesa drivers otherwise there is a blank screen when first booting a desktop-based kickstart without virtualization tools
dejavu-sans-mono-fonts # the gnome-shell package doesn't include much fonts by default, resulting in weird spacings in GNOME Terminal. GNOME Terminal unfortunately doesn't automatically pick this font
@@ -12,6 +13,9 @@ wpa_supplicant # WPA Supplicant for Linux. It is not packaged by default in GNOM
NetworkManager-wifi # Provides the plugin to manage Wireless networking within GNOME Shell
firefox # Internet browser
mozilla-ublock-origin.noarch # An efficient ad blocker for Firefox
pipewire-alsa # PipeWire media server ALSA support
pipewire-pulseaudio # PipeWire PulseAudio implementation
pipewire-jack-audio-connection-kit # PipeWire JACK implementation
%end # End of the packagages section

View File

@@ -1,4 +1,4 @@
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
virt-manager # Install virt-manager, a graphical front-end for QEMU/KVM

View File

@@ -1,4 +1,4 @@
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
qemu-guest-agent # "QEMU guest agent" The qemu-guest agent is unnecessary for a bare-metal system. However, it is included here to cover cases where this kickstart file is used to deploy a virtual machine
spice-vdagent # "Agent for Spice guests" The spice agent is unnecessary for a bare-metal system. However, it is included here to cover cases where this kickstart file is used to deploy a virtual machine

View File

@@ -1,17 +1,24 @@
services --enabled="NetworkManager,systemd-resolved,libvirtd" # Without libvirtd here, it appears the service won't automatically start
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
qemu-kvm
libvirt
libvirt-daemon-config-network
libvirt-daemon-kvm
# libvirt-daemon-driver-lxc
virt-install
virt-top
libguestfs-tools # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
python3-libguestfs # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
guestfs-tools # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
qemu-kvm # QEMU metapackage for KVM support
libvirt # Library providing a simple virtualization API
libvirt-client # Client side utilities of the libvirt library
libvirt-client-qemu # Additional client side utilities for QEMU. Used to interact with some QEMU specific features of libvirt.
libvirt-daemon # Server side daemon and supporting files for libvirt library
libvirt-daemon-common # Miscellaneous files and utilities used by other libvirt daemons
libvirt-daemon-config-network # Default configuration files for the libvirtd daemon. Provides NAT based networking
libvirt-daemon-driver-interface # Interface driver plugin for the libvirtd daemon
libvirt-daemon-driver-network # The network driver plugin for the libvirtd daemon, providing an implementation of the virtual network APIs using the Linux bridge capabilities.
libvirt-daemon-driver-qemu # QEMU driver plugin for the libvirtd daemon
libvirt-daemon-kvm # Server side daemon & driver required to run KVM guests
libvirt-daemon-log # Server side daemon for managing logs
libvirt-daemon-qemu # Server side daemon and driver required to manage the virtualization capabilities of the QEMU TCG emulators
libvirt-nss # Libvirt plugin for Name Service Switch
libvirt-dbus # libvirt D-Bus API binding
libvirt-daemon-driver-ch # Cloud-Hypervisor driver plugin for libvirtd daemon
virt-install # Utilities for installing virtual machines
%end # End of the packages section

View File

@@ -1 +1 @@
bootloader --sdboot --timeout=1 # Use systemd-boot and set a timeout to 1
bootloader --sdboot --location=mbr --timeout=1 # Use systemd-boot and set a timeout to 1

View File

@@ -0,0 +1 @@
liveimg --url=file:///mnt/iso/LiveOS/squashfs.img

View File

@@ -0,0 +1,3 @@
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64 # Official Fedora mirror
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64 # Official Fedora updates mirror
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64 # Official Fedora updates mirror

View File

@@ -1,2 +1,2 @@
repo --name=rawhide --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
repo --name=rawhide --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=x86_64
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=x86_64

View File

@@ -1,3 +0,0 @@
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora updates mirror

View File

@@ -1,6 +1,6 @@
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.
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
gnome-initial-setup # Add GNOME initial setup too to let user create local account.

View File

@@ -1,6 +1,6 @@
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
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
initial-setup # Initial setup package

View File

@@ -1,3 +1,3 @@
keyboard --xlayouts='ch (fr)' # Set keyboard layouts for Romandy
lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK
timezone Europe/Paris --utc # Set system timezone to Paris
timezone Europe/Zurich --utc # Set system timezone to Zurich

View File

@@ -1,7 +1,6 @@
%packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies. Description courtesy of the Fedora project
# Default but not necessary packages that are part of the core DNF group
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
# Default packages fom core dnf group not marked as mandatory (`dnf group info --hidden core`)
NetworkManager # Network connection manager and user applications
NetworkManager-config-connectivity-fedora # NetworkManager config file for connectivity checking via Fedora servers
dnf5-plugins # Plugins for dnf5
@@ -17,6 +16,7 @@ zram-generator-defaults # Default configuration for zram-generator
pciutils # PCI bus related utilities
libusb # Library for accessing USB devices
usbutils # Linux USB utilities
curl # transfer a URL
wget # An advanced file and recursive website downloader
nano # A small text editor

View File

@@ -7,7 +7,7 @@
#
# Provides extended hardware support
%packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
# hardware-support group. Mandatory packages # Provides extended hardware support, and especially extra wireless drivers
alsa-sof-firmware # Audio drivers and firmware for ALSA. Essential for audio functionality.

View File

@@ -1,48 +0,0 @@
# __ ____ ____ _____
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
#
# Provides the mandatory packages that are part of the core DNF group
%packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies. Description courtesy of the Fedora project
-audit # User space tools for kernel auditing
basesystem # The skeleton package which defines a simple Fedora system
bash # The Bourne Again SHell, a command-line interpreter.
-coreutils # A set of basic GNU tools commonly used in shell scripts
curl # A utility for getting files from remote servers (FTP, HTTP, and others)
dhcp-client # Provides the ISC DHCP client daemon and dhclient-script
dnf5 # Command-line package manager
dracut # Initramfs generator using udev
-e2fsprogs # Utilities for managing ext2, ext3, and ext4 file systems
filesystem # The basic directory layout for a Linux system
glibc # The GNU libc libraries
hostname # Utility to set/show the host name or domain name
iproute # Advanced IP routing and network device configuration tools
iputils # Network monitoring tools including ping
kbd # Tools for configuring the console (keyboard, virtual terminals, etc.)
kernel # The Linux kernel
-less # A text file browser similar to more, but better. Can be excluded
-man-db # Tools for searching and reading man pages. Can be excluded
ncurses # Ncurses support utilities
-openssh-clients # An open source SSH client applications. Can be excluded
-openssh-server # An open source SSH server daemon. Can be excluded
parted # The GNU disk partition manipulation program
-policycoreutils # SELinux policy core utilities. Can be excluded
procps-ng # System and process monitoring utilities
rootfiles # The basic required files for the root user's directory
rpm # The RPM package management system
-selinux-policy-targeted # SELinux targeted policy. Can be excluded
setup # A set of system configuration and setup files
shadow-utils # Utilities for managing accounts and shadow password files
-sssd-common # Common files for the SSSD. Can be excluded
-sssd-kcm # An implementation of a Kerberos KCM server. Can be excluded
-sudo # Allows restricted root access for specified users
systemd # System and Service Manager
util-linux # Collection of basic system utilities
-vim-minimal # A minimal version of the VIM editor
%end # End of the packages section

View File

@@ -8,8 +8,9 @@
# Provides the mandatory packages that are part of the core DNF group
# More information: https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#id240
%packages --ignoremissing --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies. Description courtesy of the Fedora project
%packages --nocore --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies or the core packages. Description courtesy of the Fedora project
# Mandatory packages found in hidden `core` group (`dnf group info --hidden core`)
audit # User space tools for kernel auditing
basesystem # The skeleton package which defines a simple Fedora system
bash # The Bourne Again SHell, a command-line interpreter.

View File

@@ -2,6 +2,5 @@
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 # End of the %post section

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

@@ -1,6 +1,6 @@
zerombr # Destroy all the contents of disks with invalid partition tables or other formatting unrecognizable to the installer
clearpart --all --initlabel # Erase all partitions and Initializes the disk label to the default for the target architecture
part /boot/efi --fstype="efi" --size=1024 --fsoptions="umask=0077,shortname=winnt" --label=efi # Creates an 1 GB EFI system partition
part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winnt" --label=efi # Creates a 2 GB EFI system partition
part /boot --fstype="ext4" --size=512 --label=boot # Creates a 512 MiB ext4 boot partition
part / --fstype="ext4" --grow --label=root # Create a single root partition with the remaining space
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit" # Create a single root partition with the remaining space

View File

@@ -0,0 +1 @@
bootloader --sdboot --location=none --timeout=1 # Use systemd-boot and set location to none

View File

@@ -9,15 +9,15 @@
%include ../ingredients/core.cfg # Text mode for automated installation
%include ../ingredients/core-storage.cfg # Storage configuration
%include ../ingredients/core-bootloader-grub.cfg # Set bootloader to GNU GRUB
%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
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-packages-hardware-support.cfg # Provides extended hardware support
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Post configuration script
%include ../ingredients/core-initial-setup-desktop.cfg # OEM setup for GNOME Shell
%include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment

View File

@@ -10,15 +10,15 @@
%include ../ingredients/core.cfg # Text mode
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # GNU GRUB
%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
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-packages-hardware-support.cfg # Extended hardware support
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%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

View File

@@ -9,15 +9,15 @@
%include ../ingredients/core.cfg # Text mode
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # GNU GRUB
%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
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-packages-hardware-support.cfg # Extended hardware support
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%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

View File

@@ -9,15 +9,15 @@
%include ../ingredients/core.cfg # Text mode
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-grub.cfg # GNU GRUB
%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
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-packages-hardware-support.cfg # Extended hardware support
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%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

View File

@@ -5,17 +5,19 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# A recipe for a virtual a very small nano server
# A recipe for a generic desktop hypervisor
%include ../ingredients/core.cfg # Text mode
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
%include ../ingredients/core-bootloader-systemd-boot.cfg # systemd-boot
%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-trimming-attempt.cfg # Trimming attempt for the mandatory packages
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-packages-hardware-support.cfg # Extended hardware support
%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
%include ../ingredients/core-initial-setup-desktop.cfg # OEM setup for GNOME Shell
%include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment

View File

@@ -9,16 +9,16 @@
%include ../ingredients/live-core.cfg # For live systems only
%include ../ingredients/live-core-storage.cfg # For live systems only
%include ../ingredients/live-core-bootloader-grub.cfg # GNU GRUB for live systems
%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
%include ../ingredients/live-core-mandatory-packages.cfg # For live systems
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-packages-hardware-support.cfg # Extended hardware support
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Triggered after the installation
%include ../ingredients/live-core-post.cfg # Post configuration script for a live system only
%include ../ingredients/live-core-post-live-session.cfg # Live session script

View File

@@ -9,16 +9,16 @@
%include ../ingredients/live-core.cfg # For live systems only
%include ../ingredients/live-core-storage.cfg # For live systems only
%include ../ingredients/live-core-bootloader-grub.cfg # GNU GRUB for live systems
%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
%include ../ingredients/live-core-mandatory-packages.cfg # For live systems
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-packages-hardware-support.cfg # Extended hardware support
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Triggered after the installation
%include ../ingredients/live-core-post.cfg # Post configuration script for a live system only
%include ../ingredients/live-core-post-live-session.cfg # Live session script

View File

@@ -9,16 +9,16 @@
%include ../ingredients/live-core.cfg # For live systems only
%include ../ingredients/live-core-storage.cfg # For live systems only
%include ../ingredients/live-core-bootloader-grub.cfg # GNU GRUB for live systems
%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
%include ../ingredients/live-core-mandatory-packages.cfg # For live systems
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-packages-hardware-support.cfg # Extended hardware support
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Triggered after the installation
%include ../ingredients/live-core-post.cfg # Post configuration script for a live system only
%include ../ingredients/live-core-post-live-session.cfg # Live session script

View File

@@ -9,15 +9,15 @@
%include ../ingredients/live-core.cfg # For live systems only
%include ../ingredients/live-core-storage.cfg # For live systems only
%include ../ingredients/live-core-bootloader-grub.cfg # GNU GRUB for live systems
%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
%include ../ingredients/live-core-mandatory-packages.cfg # For live systems
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
%include ../ingredients/core-fedora-repo.cfg # Offical repositories for Fedora
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/core-post.cfg # Triggered after the installation
%include ../ingredients/live-core-post.cfg # Post configuration script for a live system only
%include ../ingredients/live-core-post-live-session.cfg # Live session script

View File

@@ -5,21 +5,19 @@
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
# /_/ /____/
# 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 # GNU GRUB
%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.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/core-fedora-repo-43.cfg # Offical repositories for Fedora
%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
%include ../ingredients/base-guest-agents.cfg # Guest agents
%include ../ingredients/base-guest-agents.cfg # Guest agents

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 # GNU GRUB
%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.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/core-fedora-repo-43.cfg # Offical repositories for Fedora
%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 # GNU GRUB
%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.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/core-fedora-repo-43.cfg # Offical repositories for Fedora
%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 # GNU GRUB
%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.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/core-fedora-repo-43.cfg # Offical repositories for Fedora
%include ../ingredients/base-guest-agents.cfg # Guest agents

11
scripts/core-count.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
# Get the core count using nproc --all
core_count=$(nproc --all)
# Check if nproc --all returns a numerical value greater than 2
if (( core_count < 2 )); then
echo "Warning: System has only $core_count core)."
echo "The script requires at least four cores"
exit 1 # Exit with an error code to indicate the condition is not met
fi

168
scripts/deploy-distro.sh Executable file
View File

@@ -0,0 +1,168 @@
#!/bin/bash
# Default values
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}
# Validate memory size
if ! [[ "$memory_size" =~ ^[0-9]+$ ]] || (( memory_size < 2048 )); then
echo "Invalid memory size. Must be a number greater than or equal to 2048. Using default value of $DEFAULT_MEMORY MB."
memory_size=$DEFAULT_MEMORY
fi
# Prompt user for VM disk size
read -r -p "Provide desired disk size of VM in GB or press Enter to use default disk size of $DEFAULT_DISK_SIZE GB: " disk_size
disk_size=${disk_size:-$DEFAULT_DISK_SIZE}
# Validate disk size
if ! [[ "$disk_size" =~ ^[0-9]+$ ]] || (( disk_size < 10 )); then
echo "Invalid disk size. Must be a number greater than or equal to 10 GiB. Using default value of $DEFAULT_DISK_SIZE."
disk_size=$DEFAULT_DISK_SIZE
fi
# Set the choices
CHOICE_SYSTEM="qemu:///system"
CHOICE_SESSION="qemu:///session"
# Display the choices to the user
echo "Please select an option or press Enter to keep default value of $CHOICE_SESSION):"
echo "1) $CHOICE_SYSTEM (system-based or rootfull virtual machine)"
echo "2) $CHOICE_SESSION (session-based or rootless virtual machine)"
# Prompt the user for input
IFS= read -r -p "Enter your choice (1 or 2): " user_choice
# Validate the user's input
if [[ ! "$user_choice" =~ ^[12]$ ]]; then
echo "Invalid choice. Defaulting to session-based VM."
uri="$CHOICE_SESSION" # Default to session-based if input is invalid
else
# Determine the selected option
case "$user_choice" in
1)
uri="$CHOICE_SYSTEM"
;;
2)
uri="$CHOICE_SESSION"
;;
*)
echo "Unexpected error: Invalid choice. This should not happen due to validation."
exit 1
;;
esac
# Conditional variable assignment based on URI
if [[ "$uri" == "qemu:///system" ]]; then
disk_path="/var/lib/libvirt/images/"
network_type="default"
elif [[ "$uri" == "qemu:///session" ]]; then
disk_path="$HOME/.local/share/libvirt/images/"
network_type="user"
fi
fi
# Display the selected option (optional)
echo "You selected: $uri"
# Get a list of files in "dishes" directory
mapfile -t dish_name < <(find "dishes/" -maxdepth 1 -type f \( -name "virtual*" \) -printf "%f\n" | sed 's/\.[^.]*$//')
# Check if there are any files
if [ ${#dish_name[@]} -eq 0 ]; then
echo "No files found in the directory ../dishes."
exit 1
fi
# Display the files with numbered options
echo "Available files:"
for i in "${!dish_name[@]}"; do
echo "$((i + 1)). ${dish_name[$i]}"
done
# Prompt the user to select a file
read -r -p "Enter the number of the file you want to select: " choice
# Validate the user's choice
if ! [[ "$choice" =~ ^[0-9]+$ ]] || (( choice < 1 )) || (( choice > ${#dish_name[@]} )); then
echo "Invalid choice. Please enter a number from 1 to ${#dish_name[@]}."
exit 1
fi
# Get the selected filename
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" \
--os-variant fedora41 \
--virt-type kvm \
--arch x86_64 \
--machine q35 \
--name "$vm_name" \
--boot uefi,firmware.feature0.name=secure-boot,firmware.feature0.enabled=no \
--cpu host-model,topology.sockets=1,topology.cores=1,topology.threads=1 \
--vcpus 1 \
--cpu host-passthrough,cache.mode=passthrough \
--memory "$memory_size" \
--video virtio \
--graphics spice,listen=0.0.0.0 \
--channel unix,target.type=virtio,target.name=org.qemu.guest_agent.0 \
--autoconsole none \
--console pty,target.type=virtio \
--sound none \
--network type="$network_type",model=virtio \
--controller type=virtio-serial \
--controller type=usb,model=none \
--controller type=scsi,model=virtio-scsi \
--input type=keyboard,bus=virtio \
--input type=mouse,bus=virtio \
--rng /dev/urandom,model=virtio \
--tpm none \
--iommu model=virtio \
--watchdog none \
--memballoon none \
--disk path="${disk_path}/${vm_name}.img",format=raw,bus=virtio,cache=writeback,size="$disk_size" \
--location="$location_param" \
--initrd-inject ./dishes/"$vm_name".cfg \
--extra-args "inst.ks=file:/$vm_name.cfg"
echo "virt-install command executed with VM name: $vm_name"

View File

@@ -0,0 +1,43 @@
#!/bin/bash
# Check if virt-manager is already installed
if command -v virt-manager &> /dev/null; then
exit 0
fi
# Detect the Linux distribution
if [[ -f /etc/os-release ]]; then
. /etc/os-release
DISTRO="$ID"
else
echo "Unable to determine Linux distribution. Exiting."
exit 1
fi
echo "Detected distribution: $DISTRO"
# Install prerequisites based on distribution
case "$DISTRO" in
ubuntu|debian)
echo "Installing prerequisites for Debian/Ubuntu..."
apt-get update
apt-get install -y qemu-system libvirt-daemon-system virt-manager
;;
fedora|rhel|centos)
echo "Installing prerequisites for Fedora/RHEL/CentOS..."
dnf install -y qemu-kvm libvirt virt-manager
;;
arch)
echo "Installing prerequisites for Arch Linux..."
pacman -S --noconfirm qemu-desktop libvirt virt-manager
;;
opensuse-tumbleweed)
echo "Installing prerequisites for openSUSE Tumbleweed..."
zypper -n install qemu libvirt virt-manager
;;
*)
echo "Unsupported distribution: $DISTRO. Manual installation required."
exit 1
;;
esac

12
scripts/system-memory.sh Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
# Read the total memory from /proc/meminfo in MiB
total_memory=$(awk '/MemTotal/ {print $2}' /proc/meminfo)
# Convert to MiB by dividing by 1024 (since MemTotal is in KiB)
total_memory_mb=$(( total_memory / 1024 ))
if [[ "$total_memory_mb" -lt "4096" ]]; then
echo "Not enough RAM: The system has only ${total_memory_mb}MiB of RAM, but at least 4096 is required."
exit 1
fi