commit 22422b7f50793906170e812ab3f6004c2f0a66b6 Author: Bart Sjerps Date: Wed May 27 08:32:26 2026 +0200 initial diff --git a/bin/f b/bin/f new file mode 100644 index 0000000..5536431 --- /dev/null +++ b/bin/f @@ -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 + + diff --git a/kickstart/rocky-9.cfg b/kickstart/rocky-9.cfg new file mode 100644 index 0000000..4ea32af --- /dev/null +++ b/kickstart/rocky-9.cfg @@ -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 +