Script para cambiar el kernel del chroot de los clientes ltsp | Algo de Linux

miércoles, 23 de enero de 2013

Script para cambiar el kernel del chroot de los clientes ltsp

En ocasiones, me interesa realizar determinadas tareas directamente mediante dsh, en lugar de esperar a que se vayan realizando mediante puppet. Un ejemplo de ello es cuando quiero instalar un nuevo kernel para los clientes ltsp. 

Para instalar un nuevo kernel en el chroot de los clientes ltsp utilizo un script (actualizakernelchroot.sh) que copio de forma remota a las máquinas y posteriormente ejecuto mediante dsh.

El script es muy simple, como se puede ver:

#!/bin/bash
# Instala el kernel y los headers que le indiquemos en las variables KERNEL y HEADERES en el chroot
# Una vez instalado, regenera la imagen de los terminales y actualiza los kernels en:
#  * /var/lib/tftpboot
#  * /srv/tftp

# Esteban M. Navas Martín
# Administrador Informático del IES Valle del Jerte.
# 22-Enero-2012

KERNEL="linux-image-2.6.32-5-686"
HEADERS="linux-headers-2.6.32-5-686"

mount -t proc proc-chroot /opt/ltsp/i386/proc
mount -t devpts devpts-chroot /opt/ltsp/i386/dev/pts  
ltsp-chroot -a i386 apt-get -y install $KERNEL $HEADERS 
umount proc-chroot
umount devpts-chroot
ltsp-update-image --arch i386
ltsp-update-kernels

Para cambiar el kernel a instalar, modificamos la variable KERNEL y la variable HEADERS y listo.

En respuesta al comentario de LOR, así es como quedaría el script, sustituyendo los comandos de montaje por opciones de ltsp-chroot que permiten realizar directamente dichos montajes:

#!/bin/bash
# Instala el kernel y los headers que le indiquemos en las variables KERNEL y HEADERES en el chroot
# Una vez instalado, regenera la imagen de los terminales y actualiza los kernels en:
#  * /var/lib/tftpboot
#  * /srv/tftp

# Esteban M. Navas Martín
# Administrador Informático del IES Valle del Jerte.
# 22-Enero-2012

KERNEL="linux-image-2.6.32-5-686"
HEADERS="linux-headers-2.6.32-5-686"

ltsp-chroot -a i386 -d -p apt-get -y install $KERNEL $HEADERS 
ltsp-update-image --arch i386
ltsp-update-kernels

2 comentarios:

LOR dijo...

Creo que si añades -m o --mount-all ya no necesitas montar ni desmontar.
Puedes eliminar el montar y desmontar del script.

Esteban M. Navas Martín dijo...

La versión de ltsp-chroot que nosotros tenemos instalada no tiene ninguna opción -m o --mount-all, aunque sí tiene una opción -d para montar /dev/pts y una opción -p para montar /proc. Podrían evitarse las instrucciones de montaje de ese modo también.