Compare commits
6 Commits
ebd35f0b1f
...
local-iso
| Author | SHA1 | Date | |
|---|---|---|---|
| 6f98f5596d | |||
|
|
05cf28c11a | ||
| ba06919d98 | |||
|
|
e018870d0e | ||
|
|
0c76e7626d | ||
|
|
28c390f1b4 |
@@ -15,7 +15,7 @@ shutdown
|
|||||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
|
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
|
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
|
||||||
# Root password
|
# Root password
|
||||||
rootpw --plaintext 1234
|
rootpw --plaintext --allow-ssh 1234
|
||||||
# SELinux configuration
|
# SELinux configuration
|
||||||
selinux --disabled
|
selinux --disabled
|
||||||
# System services
|
# System services
|
||||||
@@ -37,13 +37,6 @@ part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winn
|
|||||||
part /boot --fstype="ext4" --size=512 --label=boot
|
part /boot --fstype="ext4" --size=512 --label=boot
|
||||||
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
|
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-desktop-gnome.log
|
%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
|
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ shutdown
|
|||||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
|
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
|
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
|
||||||
# Root password
|
# Root password
|
||||||
rootpw --plaintext 1234
|
rootpw --plaintext --allow-ssh 1234
|
||||||
# SELinux configuration
|
# SELinux configuration
|
||||||
selinux --disabled
|
selinux --disabled
|
||||||
# System services
|
# System services
|
||||||
@@ -37,13 +37,6 @@ part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winn
|
|||||||
part /boot --fstype="ext4" --size=512 --label=boot
|
part /boot --fstype="ext4" --size=512 --label=boot
|
||||||
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
|
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-desktop-gnome.log
|
%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
|
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ shutdown
|
|||||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
|
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
|
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
|
||||||
# Root password
|
# Root password
|
||||||
rootpw --plaintext 1234
|
rootpw --plaintext --allow-ssh 1234
|
||||||
# SELinux configuration
|
# SELinux configuration
|
||||||
selinux --disabled
|
selinux --disabled
|
||||||
# System services
|
# System services
|
||||||
@@ -35,13 +35,6 @@ part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winn
|
|||||||
part /boot --fstype="ext4" --size=512 --label=boot
|
part /boot --fstype="ext4" --size=512 --label=boot
|
||||||
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
|
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
|
||||||
|
|
||||||
%post --logfile=/mnt/sysimage/root/post.log
|
|
||||||
|
|
||||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
|
||||||
dnf update -y # Update the system
|
|
||||||
|
|
||||||
%end
|
|
||||||
|
|
||||||
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor.log
|
%post --nochroot --logfile=/mnt/sysimage/root/base-hypervisor.log
|
||||||
|
|
||||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ shutdown
|
|||||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-43&arch=x86_64
|
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
|
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f43&arch=x86_64
|
||||||
# Root password
|
# Root password
|
||||||
rootpw --plaintext 1234
|
rootpw --plaintext --allow-ssh 1234
|
||||||
# SELinux configuration
|
# SELinux configuration
|
||||||
selinux --disabled
|
selinux --disabled
|
||||||
# System services
|
# System services
|
||||||
@@ -35,13 +35,6 @@ part /boot/efi --fstype="efi" --size=2048 --fsoptions="umask=0077,shortname=winn
|
|||||||
part /boot --fstype="ext4" --size=512 --label=boot
|
part /boot --fstype="ext4" --size=512 --label=boot
|
||||||
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
|
part / --fstype="ext4" --grow --label=root --mkfsoptions="-O encrypt,fast_commit"
|
||||||
|
|
||||||
%post --logfile=/mnt/sysimage/root/post.log
|
|
||||||
|
|
||||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
|
||||||
dnf update -y # Update the system
|
|
||||||
|
|
||||||
%end
|
|
||||||
|
|
||||||
%packages --exclude-weakdeps
|
%packages --exclude-weakdeps
|
||||||
NetworkManager
|
NetworkManager
|
||||||
NetworkManager-config-connectivity-fedora
|
NetworkManager-config-connectivity-fedora
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
rootpw --plaintext 1234 # Root account is enabled with weak password
|
rootpw --plaintext 1234 --allow-ssh # Root account is enabled with weak password and allow ssh
|
||||||
selinux --disabled # Disable SELinux
|
selinux --disabled # Disable SELinux
|
||||||
firewall --enabled --ssh # Reject incoming connections that are not in response to outbound requests except SSH
|
firewall --enabled --ssh # Reject incoming connections that are not in response to outbound requests except SSH
|
||||||
@@ -17,7 +17,6 @@
|
|||||||
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
||||||
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
|
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
|
||||||
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
|
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
|
||||||
%include ../ingredients/core-post.cfg # Triggered after the installation
|
|
||||||
%include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment
|
%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-desktop-virtual-machine-manager.cfg # Virtual Machine Manager
|
||||||
%include ../ingredients/base-hypervisor.cfg # Base hypervisor
|
%include ../ingredients/base-hypervisor.cfg # Base hypervisor
|
||||||
|
|||||||
@@ -17,6 +17,5 @@
|
|||||||
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
||||||
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
|
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
|
||||||
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
|
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
|
||||||
%include ../ingredients/core-post.cfg # Triggered after the installation
|
|
||||||
%include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment
|
%include ../ingredients/base-desktop-gnome.cfg # A GNOME Shell-based desktop environment
|
||||||
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
||||||
@@ -17,6 +17,5 @@
|
|||||||
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
||||||
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
|
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
|
||||||
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
|
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
|
||||||
%include ../ingredients/core-post.cfg # Triggered after the installation
|
|
||||||
%include ../ingredients/base-hypervisor.cfg # Base hypervisor
|
%include ../ingredients/base-hypervisor.cfg # Base hypervisor
|
||||||
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||||
# /_/ /____/
|
# /_/ /____/
|
||||||
|
|
||||||
# # Unsafe. Development-only. A recipe for a virtual desktop
|
# # Unsafe. Development-only. A recipe for a virtual server
|
||||||
|
|
||||||
%include ../ingredients/core.cfg # Text mode
|
%include ../ingredients/core.cfg # Text mode
|
||||||
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
|
%include ../ingredients/core-storage.cfg # ext4-based storage configuration
|
||||||
@@ -17,5 +17,4 @@
|
|||||||
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
%include ../ingredients/core-packages-mandatory.cfg # Mandatory packages
|
||||||
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
|
%include ../ingredients/core-packages-default.cfg # Default but not necessary packages
|
||||||
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
|
%include ../ingredients/core-fedora-repo-43.cfg # Offical repositories for Fedora
|
||||||
%include ../ingredients/core-post.cfg # Triggered after the installation
|
|
||||||
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
||||||
@@ -4,6 +4,28 @@
|
|||||||
DEFAULT_MEMORY=4096
|
DEFAULT_MEMORY=4096
|
||||||
DEFAULT_DISK_SIZE=10
|
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
|
# 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
|
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}
|
memory_size=${memory_size:-$DEFAULT_MEMORY}
|
||||||
@@ -98,6 +120,16 @@ vm_name="${dish_name[$((choice - 1))]}"
|
|||||||
# Output the selected filename
|
# Output the selected filename
|
||||||
echo "You selected: $vm_name"
|
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 command with user-defined VM name
|
||||||
virt-install \
|
virt-install \
|
||||||
--connect "$uri" \
|
--connect "$uri" \
|
||||||
@@ -129,7 +161,7 @@ virt-install \
|
|||||||
--watchdog none \
|
--watchdog none \
|
||||||
--memballoon none \
|
--memballoon none \
|
||||||
--disk path="${disk_path}/${vm_name}.img",format=raw,bus=virtio,cache=writeback,size="$disk_size" \
|
--disk path="${disk_path}/${vm_name}.img",format=raw,bus=virtio,cache=writeback,size="$disk_size" \
|
||||||
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/43/Everything/x86_64/os/ \
|
--location="$location_param" \
|
||||||
--initrd-inject ./dishes/"$vm_name".cfg \
|
--initrd-inject ./dishes/"$vm_name".cfg \
|
||||||
--extra-args "inst.ks=file:/$vm_name.cfg"
|
--extra-args "inst.ks=file:/$vm_name.cfg"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user