Create a Custom ISO image with your kickstart
Install a couple of tools you’ll need later on in this walkthrough.
sudo yum install -y isomd5sum genisoimage
Download a copy of the CentOS 7 minimal image from your preferred mirror.
wget http://yum.tamu.edu/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
Create a directory to mount your source on and loop mount the downloaded iso.
mkdir /tmp/bootiso
mount -o loop CentOS-7-x86_64-Minimal-1810.iso /tmp/bootiso
Now create a working directory for you custom media.
mkdir /tmp/bootcustom
Copy the source iso media to the custom working directory.
cp -r /tmp/bootiso/* /tmp/bootcustom
Unmount the source ISO and remove the source directory.
umount /tmp/bootiso && rmdir /tmp/bootiso
Change permissions on the working directory
chmod -R u+w /tmp/bootcustom
Copy your .ks script and move to the working directory.
cp /path/to/yourks.cfg /tmp/bootcustom/isolinux/ks.cfg
Add your kickstart to boot options.
sed -i 's/append\ initrd\=initrd.img/append initrd=initrd.img\ ks\=cdrom:\/ks.cfg/' /tmp/bootcustom/isolinux/isolinux.cfg
Create the new ISO file with genisotools
cd /tmp/bootisoks && \
mkisofs -o /tmp/boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "CentOS 7 x86_64" -R -J -v -T isolinux/. .
Add an MD5 checksum to your .iso
implantisomd5 /tmp/boot.iso