This commit is contained in:
Bart Sjerps
2026-05-27 08:32:26 +02:00
commit 22422b7f50
2 changed files with 134 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# requires lorax, genisoimage: dnf install lorax genisoimage
mkksiso --ks=/var/www/kickstart/rocky-9.cfg Rocky-9.7-x86_64-minimal.iso custom.iso
+127
View File
@@ -0,0 +1,127 @@
clearpart --none
lang en_US.UTF-8 --addsupport=nl_NL.UTF-8
keyboard us
text
network --onboot yes --bootproto dhcp --noipv6
firewall --service=ssh
# authconfig --enableshadow --passalgo=sha512
selinux --disabled
zerombr
repo --name="AppStream" --baseurl=http://atc-mgt01.dell-atc.lan/iso/Rocky-9.7-x86_64-minimal/Minimal
%include /tmp/settings
reboot
# Install minimal system. Skip firmware stuff.
# Also skip selinux, and some other unneeded packages.
%packages
@^minimal-environment
-iwl*firmware
-linux-firmware
%end
#######################################################################################
# Pre script: #
# Handling commandline options #
# configuring repositories and setting up install packages #
#######################################################################################
%pre --log=/tmp/ks-pre.log
#!/bin/bash
echo Kickstart preinstall script
touch /tmp/rpms /tmp/settings
# Settings from config file
rootpw='$6$OJEdzUbqfQR72WjX$SFMnDZ0MXM7JfYKPvvN0nJIPetzrWQw/0q360xgR9mwJVwrme4dt9hhtH95yytn8Ln0.0koVCno6vskylJFm5.'
tz='Europe/Amsterdam'
set -- `cat /proc/cmdline`
for I in $*; do case "$I" in *=*) eval ${I//inst\./} ;; esac; done
grep -qws "debug" /proc/cmdline && bash
# Get release by probing libc
# EL 6 does not support bootdisk on XFS, only use it for everything else
case $(ls /lib64/libc-*|head -1) in
*2.12*) fs=ext4 ; mp=/mnt/source ;;
*) fs=xfs ; mp=/run/install/repo ;;
esac
# boot disk detection
printf "%-10s%10s%10s%10s\n" dev size removable inuse
for dev in $(find /sys/block/ -name "sd?" -o -name "xvd?" -o -name "vd?"|sort); do
devname=${dev##*/}
size=$(($(< $dev/size)/2097152))
blkid -pu filesystem /dev/$(basename $dev) &>/dev/null && used=1 || used=0
removable=$(< $dev/removable)
printf "%-10s%10s%10s%10s\n" $devname $size $removable $used
((size>8)) && ((used==0)) && ((removable==0)) && bootdisk=${bootdisk:-$devname}
done
test -z "$bootdisk" && echo "No bootdisk detected" || echo "Bootdisk = $bootdisk"
echo "rootpw --iscrypted $rootpw" >> /tmp/settings
if test -d /sys/firmware/efi; then
cat <<- EOF >> /tmp/settings
reqpart --add-boot
EOF
else
cat <<- EOF >> /tmp/settings
bootloader --location=mbr
part /boot --fstype=$fs --size=768
EOF
fi
cat <<- EOF >> /tmp/settings
timezone ${tz:---utc UTC}
ignoredisk --only-use=${bootdisk:-none}
part pv.2 --grow --size=200 --maxsize=65536
volgroup rvg --pesize=4096 pv.2
logvol / --fstype=$fs --name=root --vgname=rvg --size=1024
logvol /opt --fstype=xfs --name=opt --vgname=rvg --size=512
logvol /var --fstype=xfs --name=var --vgname=rvg --size=2048
logvol /usr --fstype=xfs --name=usr --vgname=rvg --size=4096
logvol /home --fstype=xfs --name=home --vgname=rvg --size=1024
logvol /tmp --fstype=xfs --name=tmp --vgname=rvg --size=1024
logvol swap --name=swap --vgname=rvg --size=1024
EOF
set > /tmp/environment
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
#######################################################################################
# Post (no chroot) script #
#######################################################################################
%post --nochroot --log=/mnt/sysimage/var/log/ks-post-nochroot.log
# Save kickstart and cmdline settings for later reference
cp /proc/cmdline /tmp/{settings,environment,rpms,ks-pre.log} /mnt/sysimage/var/lib/misc/
%end
#######################################################################################
# Post (chroot) script (optional customization) #
#######################################################################################
%post --log=/var/log/ks-post-chroot.log --interpreter=/bin/bash
mkdir -p /root/.ssh
cat <<- EOF >> /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdE/iMpuqJUG6FC3hLqOD5uREa6v6xXR3HeMBg1NibGVYkr0WmfvsckVsStKYA0SF3PLFs+fWTTJ6iFTDJvcclzADKe0REekWWrR7kNJR5RHoDwo6/hzm22tyGMH5i5JnvRElDmlLgmeXChWtqLVo2IP1JZrGyT/GTl4ViSZjNfdgCHJNxzmBgHdp31Mv9I7/1vv3A7ucJ3BJpbIL4Ck6QidFz1fQUWIJrXtNsdqvO/9PcFl/v75etfQRNPQ3HLMbWiQu6hVcKpxuwj0qVaXA+WPQAn5GeBKIkRYMsjEVC2fUS1/IVp47kmnXsw0H3fgGXPmoAEsRKs9niVOwegvWj /home/bart/.ssh/id_rsa
EOF
chmod 400 /root/.ssh/authorized_keys
chvt 2
iotty=$(tty)
exec > "$iotty" 2>&1 < "$iotty"
read -p "Enter hostname: " hn
hostnamectl hostname $hn
%end