Generación ISO vía Kickstart

    De la mano de Red Hat Enterprise Linux, ya hay una solución para recrear una ISO según nuestras necesidades.

    En primer lugar, descargaremos la ISO (v9.4) de la web oficial.

    En una VM, instalaremos el software necesario:

    yum install -y genisoimage syslinux pykickstart isomd5sum
    

    Podemos generar un fichero kickstart de forma guiada o coger y adaptar alguna template (opción preferida).

    El formato del fichero kickstart debe ser UTF-8 por lo que validamos y forzamos que tenga dicha codificación:

    file ks.cfg
    iconv -f ISO-8859-1 -t UTF-8 ks_demo.cfg > ks.cfg
    

    En este punto crearemos un directorio temporal donde crearemos un fichero, copiaremos la ISO y su contenido:

    cd /tmp
    rm -rf /tmp/RHEL9
    mkdir -p /tmp/RHEL9
    mount -o loop /tmp/rhel-9.4-x86_64-dvd.iso /mnt
    
    shopt -s dotglob
    
    cp -avRf /mnt/* /tmp/RHEL9
    
    umount /mnt
    

    El fichero kickstart, lo dejamos en RHEL9/ks.cfg

    Es útil y necesario validar que el fichero kickstart sea válido y que obtenemos el Volume ID:

    ksvalidator -v RHEL9 RHEL9/ks.cfg
    
    blkid rhel-9.4-x86_64-dvd.iso | awk '{print $4}' | sed 's/.*"\(.*\)"[^"]*$/\1/'
    isoinfo -d -i rhel-9.4-x86_64-dvd.iso | grep "^Volume id" | awk '{print $NF}'
    

    Una vez realizados los puntos anteriores, editaremos el fichero RHEL9/isolinux/isolinux.cfg para añadir la siguiente información:

    label kickstart
      menu label 'Install Kickstart Install Red Hat Enterprise Linux 9.4'
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-9-4-0-BaseOS-x86_64 inst.ks=cdrom:/ks.cfg
    

    También añadiremos la siguiente información en el fichero RHEL9/EFI/BOOT/grub.cfg:

    menuentry 'Install Kickstart Red Hat Enterprise Linux 9.4' --class fedora --class gnu-linux --class gnu --class os {
            linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=RHEL-9-4-0-BaseOS-x86_64 quiet inst.ks=cdrom:/ks.cfg
            initrdefi /images/pxeboot/initrd.img
    }
    

    Llegados a este punto, generaremos la ISO

    cd /tmp/RHEL9
    
    mkisofs -o /tmp/DEMO-rhel-9.4-x86_64-dvd.iso -b isolinux/isolinux.bin -J -R -l -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -graft-points -joliet-long -input-charset UTF-8 -V "RHEL-9-4-0-BaseOS-x86_64" -volset "RHEL-9-4-0-BaseOS-x86_64" -A  "RHEL-9-3-0-BaseOS-x86_64" .
    
    isohybrid --uefi /tmp/DEMO-rhel-9.4-x86_64-dvd.iso
    
    implantisomd5 /tmp/DEMO-rhel-9.4-x86_64-dvd.iso
    

    Si tenemos acceso a algun Datastore de nuestro ESX, lo podemos copiar directamente para agilizar tiempos de download/upload:

    scp -rp /tmp/DEMO-rhel-9.4-x86_64-dvd.iso [email protected]:/vmfs/volumes/5ea43138-1e1afa01-1ec7-08f1eaf1ac0a/ISOs/
    

    Ya tenemos una ISO para instalar el sistema operativo de forma desatendida y bajo una configuración especifica.

    Leave a Reply

    Your email address will not be published. Required fields are marked *