Add Fedora 44 GNOME virtual machine

This commit is contained in:
Guofang committed 2026-08-31 12:16:59 +08:00
1 parent 58a0a2d1ff
commit a0cd640ffe
10 files changed
+267 -2

No files matched your search

+2 -1
View File
@@ -6,7 +6,8 @@ Each operating system has an independent NoCloud configuration and generated
```text
seediso/
├── debian13/
└── almalinux10/
├── almalinux10/
└── fedora44/
```
Keeping per-OS metadata separate allows each VM to use a distinct hostname and
+2
View File
@@ -0,0 +1,2 @@
seed.iso
*.iso
+14
View File
@@ -0,0 +1,14 @@
# Fedora 44 seed.iso
This directory contains the cloud-init NoCloud configuration used by
`run-fedora44.sh`. On first boot, cloud-init's package module installs Fedora's
GNOME package group and reboots the guest.
After changing `user-data`, `meta-data`, or `network-config`, remove the old
`seed.iso` and rebuild it:
```bash
./seediso/fedora44/build-seed.sh
```
Use a unique `instance-id` when cloning this configuration for another VM.
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
output="${1:-${script_dir}/seed.iso}"
files=(user-data meta-data)
mkdir -p "$(dirname -- "$output")"
if [[ -f "${script_dir}/network-config" ]]; then
files+=(network-config)
fi
if command -v cloud-localds >/dev/null 2>&1; then
args=()
[[ -f "${script_dir}/network-config" ]] && args+=(--network-config="${script_dir}/network-config")
cloud-localds "${args[@]}" "$output" "${script_dir}/user-data" "${script_dir}/meta-data"
elif command -v xorriso >/dev/null 2>&1; then
xorriso -as mkisofs -quiet -volid cidata -joliet -rock -output "$output" "${files[@]/#/${script_dir}/}"
elif command -v genisoimage >/dev/null 2>&1; then
genisoimage -quiet -output "$output" -volid cidata -joliet -rock "${files[@]/#/${script_dir}/}"
elif command -v mkisofs >/dev/null 2>&1; then
mkisofs -quiet -output "$output" -volid cidata -joliet -rock "${files[@]/#/${script_dir}/}"
else
printf 'Error: install cloud-image-utils, xorriso, genisoimage, or mkisofs.\n' >&2
exit 1
fi
printf 'Created %s\n' "$output"
+2
View File
@@ -0,0 +1,2 @@
instance-id: fedora44-host-001
local-hostname: fedora44-host
+10
View File
@@ -0,0 +1,10 @@
version: 2
ethernets:
all-en:
match:
name: "en*"
dhcp4: true
all-eth:
match:
name: "eth*"
dhcp4: true
+31
View File
@@ -0,0 +1,31 @@
#cloud-config
preserve_hostname: false
manage_etc_hosts: true
ssh_pwauth: true
users:
- name: guofang
gecos: Guofang
groups: [wheel]
shell: /bin/bash
sudo: "ALL=(ALL) NOPASSWD: ALL"
lock_passwd: false
hashed_passwd: $6$0NtCERV3eO12t9oJ$nlFE2sSc66nFfuD5X0xMnOla1cuzOnHfeGNRY5X7dCDHg.WzWVmuRe7M17Puj44.eCWLnJAWt4WNjd9vP9X0D0
chpasswd:
expire: false
package_update: true
packages:
- "@gnome-desktop"
runcmd:
- [systemctl, set-default, graphical.target]
# - [systemctl, enable, gdm.service]
power_state:
delay: now
mode: reboot
message: "GNOME installation completed; rebooting into graphical mode."
condition: true