Kickstart: Instalaciones automatizadas en Red Hat, Centos o Rocky Linux
Hoy vamos a ver una de las herramientas más potentes y desconocidas para automatizar instalaciones en sistemas basados en Red Hat Enterprise Linux, como Rocky Linux 9, AlmaLinux o CentOS Stream: el método de instalación Kickstart.
Kickstart permite a los administradores de sistemas generar un único fichero que describe todos los pasos que normalmente realizaríamos durante una instalación manual: idioma, particionado, paquetes, red, usuarios, políticas de seguridad, postinstalación, etc.
Este archivo puede almacenarse en un servidor central, distribuirse por PXE, o integrarse directamente dentro de una ISO personalizada. Gracias a ello podemos desplegar decenas o cientos de máquinas de forma idéntica, reproducible y sin intervención humana.
En esta guía te mostraré cómo crear un entorno básico para generar una ISO personalizada de Rocky Linux 9 utilizando un fichero Kickstart propio.
Descargar y crear un recurso de instalación para Rocky Linux
Voy a ir bastante al grano. Antes de crear el guion del Kickstart, debemos descargar la ISO en la que nos basaremos, en nuestro caso la penúltima versión de Rocky Linux, que es la versión 9.
sudo yum install wget -y wget https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.0-x86_64-dvd.iso
Montamos la imagen en una ubicación del sistema que utilicemos para trabajar.
sudo mkdir /mnt/iso sudo mount Rocky-9.0-x86_64-dvd.iso /mnt/iso
Una vez montado copiamos el contenido a una carpeta:
sudo mkdir -p /opt/kickstart/rocky9 sudo cp -r /mnt/iso/* /opt/kickstart/rocky9/
Y ya podemos desmontar la ISO
sudo umount /mnt/iso
Crear el fichero de Kickstart para Rocky Linux 9
El fichero que vamos a crear se llamará «ks.cfg», y estará ubicado dentro de la ruta /opt/kickstart/rocky9/. Antes de continuar, os recomiendo que echéis un vistazo al aparto de documentación de Red Hat, que contiene una herramienta vía web que nos facilita la generación de estos ficheros: Red Hat Kickstart Labs
Un contenido básico, que he creado para esta entrada:
# Kickstart básico para Rocky Linux 9 # --- Contraseña de root (usar hash SHA-512) --- rootpw --iscrypted $6$GENERATUHASHAQUI$... # --- Idioma, teclado y zona horaria --- lang en_US keyboard es timezone Europe/Madrid --utc # --- Primera configuración --- firstboot --enable # --- Ignorar discos no usados --- ignoredisk --only-use=sda # --- Modo instalación --- text cdrom # --- Repositorios desde la ISO --- repo --name="BaseOS" --baseurl=file:///run/install/repo/BaseOS repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream # --- Bootloader --- bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda # --- Particionado --- zerombr clearpart --all --initlabel part /boot --fstype=ext4 --size=1024 part pv.1 --size=1 --grow volgroup vg_root pv.1 logvol / --fstype=xfs --name=lv_root --vgname=vg_root --size=5120 logvol /opt --fstype=xfs --name=lv_opt --vgname=vg_root --size=5120 --fsoptions="nodev" logvol /var --fstype=xfs --name=lv_var --vgname=vg_root --size=5120 --fsoptions="nodev" logvol /tmp --fstype=xfs --name=lv_tmp --vgname=vg_root --size=2048 --fsoptions="nodev,noexec,nosuid" logvol /home --fstype=xfs --name=lv_home --vgname=vg_root --size=5120 --fsoptions="nodev" logvol swap --fstype=swap --name=lv_swap --vgname=vg_root --size=2048 # --- Seguridad --- firewall --disabled selinux --permissive # --- Servicios --- services --disabled="chronyd" # --- Autenticación --- authselect select minimal --force # --- Reiniciar al finalizar --- reboot # --- Paquetes a instalar --- %packages @^server-product-environment @standard @network-tools @security-tools wget lsof bind-utils git ruby net-tools sg3-utils nfs-utils rpcbind cloud-init dnf-plugins-core %end
Este Kickstart está adaptado a Rocky Linux 9 y utiliza prácticas recomendadas actuales (XFS, authselect moderno, particionado LVM seguro…).
Otro fichero muy importante es el ubicado en «isolinux/isolinux.cfg», primero guardamos el fichero original:
cp -p /opt/kickstart/rocky9/isolinux/isolinux.cfg /opt/kickstart/rocky9/isolinux/isolinux.cfg.original
Y añadimos la siguiente configuración al fichero «isolinux.cfg»
Primero guardamos el fichero original:
cp -p /opt/kickstart/rocky9/isolinux/isolinux.cfg \ /opt/kickstart/rocky9/isolinux/isolinux.cfg.original
Editamos isolinux.cfg y añadimos una entrada personalizada:
default vesamenu.c32 timeout 600 menu clear label kickstart menu label ^Instalar Rocky Linux 9 (Kickstart Davidochobits) kernel vmlinuz append initrd=initrd.img inst.ks=cdrom:/ks.cfg inst.stage2=hd:LABEL=Rocky-9-0-x86_64 inst.text ipv6.disable=1 net.ifnames=0 biosdevname=0
Una vez hecho esto guardamos y salimos.
Es importante que apuntemos la LABEL, ya que la necesitaremos en el siguiente paso.
Podemos comprobarla con:
isoinfo -d -i Rocky-9.0-x86_64-dvd.iso | grep -i "Volume id"
Antes de nada vamos a validar el fichero «ks.cfg» con la herramienta, para ello vamos a instalar el paquete «pykickstart«:
sudo dnf install pykickstart -y
Tal y como se ve en la imagen:

Instalamos pykickstart
Una vez hecho esto validamos el fichero:
ksvalidator ks.cfg
Si nos muestra algún mensaje, debemos seguir las instrucciones que nos indica hasta que no tengamos ningún error ni aviso.
Ahora toca la última parte, que es crucial, debemos generar la ISO, para eso, en mi caso lo haré de la siguiente manera, primero instalaremos el paquete «xorriso» (sí, se llama así de verdad), que es un emulador del «mkisofs«, tal y como se ve en la imagen:

Instalamos mkisofs
Y ahora sí, creamos la ISO, indicando como os dije antes, la LABEL, tras el parámetro «-V«, tal y como se observa:
mkisofs -o RockyLinux9Davidochobits.iso \ -b isolinux/isolinux.bin \ -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ -R -J -v \ -V "Rocky-9-0-x86_64" \ -T /opt/kickstart/rocky9
Vemos el resultado:

Finaliza la generación de la ISO
Una vez generada la imagen la copiamos fuera de la máquina virtual, que es lo que yo estoy utilizando, para poder utilizar la ISO para crear una nueva máquina y probarla.
Fuente Interesante: https://www.lisenet.com/2021/configure-pxe-boot-server-for-rocky-linux-8-kickstart-installation/



Comentarios Recientes