El tiempo es oro y por lo general no nos alcanza como quisiéramos, por ello siempre andamos a la búsqueda de automatizar tareas. Una de las formas de ganar tiempo es haciendo instalaciones desatendidas o en modo automático como veremos hoy en este articulo, como instalar de forma automática con kickstart un Linux Centos.
Kickstart es como una navaja suiza, tiene infinidad de opciones y se puede "moldear" a tus necesidades convirtiéndola en una gran herramienta que debemos conocer. Con este articulo solo te mostrare algunas de las variantes pero si quieres profundizar mucho mas, te aconsejo leas la guía de RedHat (abajo te doy el link) y pruebes y pruebes :-)
Ya entrando en materia, para este articulo usare un Linux Centos 7 actualizado a la fecha al que le instale gnome para poder ejecutar la versión gráfica de kickstart.
Requerimientos
-Instalamos dependencias
sudo yum install system-config-kickstart pykickstart
-Hacemos una copia del archivo de instalación de nuestro equipo actual Linux Centos y le cambiamos los permisos para que nuestra cuenta de usuario pueda modificarlo
sudo cp /root/anaconda-ks.cfg micentos-ks.cfg
sudo chown drivemeca.drivemeca micentos-ks.cfg
-Ejecutamos system-config-kickstart y le pasamos como parámetro el .cfg creado a partir del original
system-config-kickstart micentos-ks.cfg
-Ya en kickstart verificamos nuestra configuración
-Guardamos los cambios al salir
-En nuestro archivo kickstart micentos-ks.cfg
-Editamos nuestro archivo kickstart. Mas información de opciones y sus parámetros en la
Kickstart Syntax reference de RedHat
vi micentos-ks.cfg
install
#cambio el teclado a español latino
keyboard --vckeymap=latam --xlayouts='latam'
rootpw --iscrypted $1$V2SxNfyt$4X/p09gk5SouoQ38a7oLg0
#habilito el servicio sshd
services --enabled="sshd"
#cambio la zona horaria, idioma español colombia
timezone America/Bogota
lang es_CO
#deshabilito el firewall
firewall --disabled
auth --useshadow --passalgo=sha512
#la instalación sera desde cdrom en modo texto
cdrom
text
firstboot --enable
#deshabilito selinux
selinux --disabled
#no ejecutaremos X
skipx
#instalaremos en el disco sda, verifica si es así para ti (instalaras en IDE, por ejemplo)
ignoredisk --only-use=sda
#activamos nuestra interface de red por dhcp, habilitamos ipv6 y cambiamos nuestro hostname
network --bootproto=dhcp --device=enp0s3 --ipv6=auto --activate
network --hostname=cen7.test.com
#reiniciamos al terminar la instalación
reboot
#inicializamos el disco y lo tomamos completo para Linux Centos
bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda
clearpart --drives=sda --all --initlabel
#Esquema particionado propuesto para este articulo:
#/boot
#swap
#/
#/var/lib/pgsql
#/var/log
part /boot --fstype="xfs" --ondisk=sda --size=381
part pv.218 --fstype="lvmpv" --ondisk=sda --size=20098
volgroup centos --pesize=4096 pv.218
logvol swap --fstype="swap" --size=1907 --name=swap --vgname=centos
logvol / --fstype="xfs" --size=5722 --name=root --vgname=centos
logvol /var/lib/pgsql --fstype="xfs" --size=7686 --name=var_lib_pgsql --vgname=centos
logvol /var/log --fstype="xfs" --size=4768 --name=var_log --vgname=centos
#agregamos grupos de paquetes junto a paquetes específicos que queremos instalados
%packages
@core
@net-tools
%end
-Validamos todo este correcto
ksvalidator micentos-ks.cfg
-Descargamos el ISO de Linux Centos minimal. Esto es necesario para generar un nuevo ISO y agregarle el micentos-ks.cfg para una instalación desatendida
wget -c http://mirror.rackspace.com/CentOS/7.2.1511/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso
-Montamos el ISO
sudo mkdir /media/micentos
sudo mount -o loop -t iso9660 CentOS-7-x86_64-Minimal-1511.iso /media/micentos
-Creamos una copia para poder modificarlo
mkdir /tmp/cdrom
cp -R /media/micentos/ /tmp/cdrom/
-Cambiamos sus atributos para poder modificarlo
sudo chmod 644 /tmp/cdrom/micentos/isolinux/isolinux.cfg
-Editamos y agregamos que lea nuestro kickstart
sudo vi /tmp/cdrom/micentos/isolinux/isolinux.cfg
label Kickstart
menu label ^K) Instalar RHEL 7 x64 con Kickstart desatendido
menu default
kernel vmlinuz
append initrd=initrd.img
inst.ks=cdrom:/isolinux/micentos-ks.cfg inst.vnc inst.vncpassword=contraseña
-Copiamos nuestro cfg de kickstart
sudo cp /home/drivemeca/micentos-ks.cfg /tmp/cdrom/micentos/isolinux/
-Generamos el nuevo ISO. OJO, debe haber suficiente espacio libre para crear el ISO y recuerden poner el . (punto) final
cd /tmp/cdrom/micentos
mkisofs -o /tmp/cdrom/Centos_7.2_kickstart.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-info-table -boot-load-size 4 -R -J -T .
..
..
99.56% done, estimate finish Sun Mar 13 14:45:43 2016
Total translation table size: 96516
Total rockridge attributes bytes: 43005
Total directory bytes: 73728
Path table size(bytes): 140
Max brk space used 7d000
351546 extents written (686 MB)
-Ya tenemos nuestro ISO personalizado
ls -la ../
total 703096
drwxr-xr-x 3 root root 52 mar 13 14:45 .
drwxr-xr-x. 3 root root 18 mar 13 14:36 ..
-rw-r--r-- 1 root root 719966208 mar 13 14:45 Centos_7.2_kickstart.iso
dr-xr-xr-x 8 root root 4096 mar 13 14:37 micentos
-Generamos un CDROM o USB booteable con nuestro ISO y lo probamos en un equipo. Para esto hemos activado la opción de vnc, el nos pedirá cambio de contraseña y nos dirá que ip tomo por DHCP
-Después de escribir la nueva contraseña nos dirá la ip y puerto a la que podemos conectarnos con vnc para ver la instalación
-La instalación vista desde un vnc
Ahora que ya viste como hacerlo, que ideas se te ocurren? ya haz usado kickstart, en que versiones de Linux Centos?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.
Sígueme en twitter , google+, facebook o email y podrás estar enterado de todas mis publicaciones.