SystemImager
Se trata de una herramienta que facilita la instalación y administración de toda una red local con máquinas Linux. Los cambios hechos en un PC concreto se actualizan en el resto de la red. Incluso podemos crear un disquete de arranque que permite la clonación de un equipo, de forma que hasta se particiona y formatea el disco duro de forma automática
Notas
Este paquete lo instalaremos, en principio,
en un único equipo de nuestra red que actuará como
servidor de imágenes y servirá para que otros equipos se actualicen o instalen desde él. Lo ideal es utilizar como servidor un equipo aparte de los que se estén usando en el aula (un viejo PC por ejemplo).
En el momento de escribir este tema el repositorio de Guadalinex Edu 2.0 no permite la instalación de este paquete con todas sus dependencias, por lo que tendremos que editar el fichero
/etc/apt/sources.list y
ampliarlo con el repositorio de
Debian testing (sarge). A continuación ejecutaremos
apt-get update
Ahora ya podemos instalar el paquete
systemimage-server usando
synaptic o con el comando
apt-get install systemimager-server
Una vez finalizada la instalación, podemos volver a dejar el fichero
/etc/apt/sources.list tal como estaba en un principio y ejecutar nuevamente
apt-get update.
La documentación (y los comandos) del SystemImager se refieren al
golden-client como a un equipo de nuestra red (que está perfectamente instalado y actualizado) que queremos utilizar como modelo para que los demás se sincronicen con él. Se trata de un
equipo distinto al que hemos llamado
servidor.
Al igual que hemos hecho en el servidor, en el
golden-client tendremos que actualizar el fichero
/etc/apt/sources.list y ejecutar a continuación
apt-get update
En el
golden-client instalaremos el paquete
systemimager-client (con
synaptic o con el comando
apt-get install systemimager-client)
Creando una imagen del golden-client en el servidor
El
golden-client es el ordenador que queremos usar como imagen para que todos los demás se sincronien con él.
- En el golden-client ejecutaremos el comando
prepareclient --server ip_del_servidor
Por ejemplo prepareclient --server 192.168.0.78
Si ejecutamos simplemente preparaclient se nos mostrará una ventana de ayuda recordándonos los otros parámetros.
Durante el proceso de creación de la imagen (que se almacena en el servidor) es recomendable no ejecutar ningún programa en el golden-client salvo prepareclient
- En el servidor ejecutamos el comando
getimage -golden-client ip_del_golden-client -image _nombre_que_elijamos_para_la_imagen
por ejemplo getimage -golden-client 192.168.0.13 -image equipos_nuevos_glinex2.0
Si ejecutamos simplemente getimage se nos mostará una ventana de ayuda recordándonos los otros parámetros. Dependiendo de la distribución que usemos, puede que el programa getimage se llame si_getimage
- Nota: Si en nuestra red tenemos dos (o más) tipos de equipos (por ejemplo equipos antiguos y nuevos) podemos utilizar el mismo servidor para crear las distintas imágenes, usando distinto nombre al ejecutar
getimage (por ejemplo getimage -golden-client 192.168.0.13 -image equipos_antiguos_glinex2.0). Naturalmente necesitaremos un golden-client para los equipos nuevos y otro golden-client (un equipo antiguo) para los equipos antiguos.
Una vez creada la imagen en el servidor se nos preguntará si queremos crear/actualizar los scripts de autoinstalación (clonación). Respondemos afirmativamente y seleccionamos a continuación la opción 2 (los equipos usan IP estática), o de lo contrario tendremos que instalar un servidor DHCP en nuestra red y configurarlo especialmente para el systemimager.
Se nos preguntará si queremos ejecutar
addclients. En principio responderemos negativamente y sólo ejecutaremos este comando si queremos usar la imagen para
clonar equipos en nuestra red
Actualizando un equipo (cliente) de la red local
Ahora queremos actualizar, usando la imagen del
golden-client que hemos salvado en el servidor, otro equipo de la red local. Para ello en primer lugar tendremos que instalar el paquete
systemimager-client de la misma forma que lo hicimos en el
golden-client
Una vez instalado el paquete, sólo necesitamos ejecutar el comando
updateclient -server ip_del_servidor -image nombre_de_la_imagen
Por ejemplo
updateclient -server 192.168.0.78 -image equipos_nuevos_glinex2.0
Es muy conveniente reiniciar el PC una vez haya sido actualizado, lo que se consigue automáticamente si ejecutamos
updateclient -server 192.268.0.78 -image equipos_nuevos_glinex2.0;reboot
Si ponemos
halt en lugar de
reboot, el equipo se apagará tras la actualización.
- Al actualizar un equipo de la red local desde la imagen de otro, por defecto se respeta (no se actualiza) el directorio /home y una serie de ficheros que contienen información específica de cada PC (por ejemplo /etc/hostname, /etc/network/interfaces). Estas opciones son configurables.
¿Y si falla el comando updateclient?
- El comando
updateclient nos sirve entre otras cosas para reparar nuestro sistema a partir de una imagen sana. Sin embargo si el propio paquete systemimager-client o cualquier otro vinculado a él está estropado u obsoleto, es muy posible que el comando falle.
- Para reparar o actualizar el systemimager-client, ejecutaremos como root:
apt-get update
apt-get install updateclient
- Después de actualizar el systemimager-client en el golden-client es recomendable actualizar la imagen en el servidor.
Instalando desde cero un equipo de la red (clonación con un disquete)
Queremos ahora instalar desde cero un PC de la red local, con hardware idéntico al equipo usado como
golden-client, cuya imagen ha sido salvada en el servidor de imágenes.
Necesitamos configurar el servidor de imágenes para esta opción, ejecutando el comando
addclients
Tendremos que rellenar una serie de datos sobre los nombres y las IPs de los PC que vamos a generar por clonación
- domain name Nombre de dominio (domain name). Podemos usar cualquier nombre de dominio inexistente en Internet, como
aula o el que nos haya indicado nuestro proveedor de Internet.
- base host name Prefijo por el que empiezan los nombres de nuestros PCs. Algo típico sería poner como prefijo
pc
- número inicial y número final. Si ponemos 12 y 27 respectivamente, el servidor esperará que se instalen los equipos llamados pc12, pc13, ... pc27
Necesitamos también un diskette de 1.44 MB, que insertaremos en la disquetera del servidor de imágenenes para ejecutar a continuación el comando
mkautoinstalldiskette
Tenemos ahora un disquete de arranque que nos serviría tal como está si instalamos (y configuramos adecuadamnete) en el servidor de imágenes un servidor DHCP. En general esto no es conveniente, pues lo normal es que ya estemos usando nuestro router ADSL como servidor DHCP.
Montamos el disquete (que todavía está en la disquetera)
mount /floppy
y creamos (o copiamos) en él un fichero llamado local.cfg cuyo contenido sea similar al siguiente (es imprescindible asignar valor a todas las variables)
HOSTNAME=pc23
DOMAINNAME=aula
DEVICE=eth0
IPADDR=192.168.0.23
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
GATEWAY=192.168.0.1
GATEWAYDEV=eth0
IMAGESERVER=192.168.0.78
Por último desmontamos el disquete ejecutando
umount /floppy
(si estamos en /floppy tendremos que salir antes de poder desmontar el disquete ejecutando, por ejemplo,
cd)
Ahora
¡basta arrancar con este disquete el PC que queremos clonar! y esperar un tiempo que dependerá de lo grande que sea la imagen.
¿Qué pasa si no funciona el disquete o no tenemos disquetera?
Si el fichero
local.cfg es correcto y el disquete de arranque no logra activar la tarjeta de red o acceder al disco duro se debe a que tenemos harware poco común (o demasiado reciente) y es necesario actualizar el núcleo.
Una forma de solucionar el problema es clonar el PC con
PartitionImage en lugar de
SystemImager. En este caso podemos crear un CD de arranque que contenga la imagen de la partición.
También podemos arrancar el sistema con el
KnoppixCD y utilizar
rsync para descargar los ficheros, para a continuación reconfigurar el gestor de arranque (Lilo en
GuadaLinex Edu). Los pasos a seguir una vez iniciado el sistema con el
KnoppixCD (que podemos usar en modo texto, escribiendo
knoppix 2 en el momento del arranque) son:
- Ejecutamos
cfdisk y particionamos según nuestras necesidades. No es necesario que la partición donde vamos a instalar el sistema tenga el mismo tamaño que la correspondiente del golden-client
- Formateamos la partición donde vamos a clonar el sistema (aunque es posible que Knoppix nos obligue a reiniciar el sistema antes de hacer esto). Si la partición que vamos a usar en
/dev/hda2 es tipo ext3, tendremos que ejecutar mkfs -t ext3 /dev/hda2
- Montamos la partición, por ejemplo en
/mnt/hda2, ejecutando mount /dev/hda2 /mnt/hda2
- Comprobamos que la red está correctamente configurada y que tenemos acceso al servidor SystemImager.
- Ejecutamos el siguiente comando, escribiendo la IP del servidor y el nombre de la imagen que correspondan:
rsync -av --exclude=lost+found/ --numeric-ids 192.168.0.78::equipos_nuevos_glinex2.0/ /mnt/hda2/
- Una vez termine la transferencia de ficheros, ejecutamos
chroot /mnt/hda2 para iniciar sesión en el sistema recien transferido. Si hemos transferido el sistema a una partición diferente a la que usamos en el golden-client, tendremos que modificar los ficheros /etc/fstab y /etc/lilo.conf (o /boot/grub/menu.lst). Finalmente ejecutamos el programa lilo o un comando del tipo grub-install /dev/hda
- Ejecutamos
exit para salir de la jaula chroot
- Reiniciamos el sistema y arrancamos con el sistema transferido (tendremos que sacar el KnoppixCD del lector de CD).
Enlaces de interés
--
RicardoDeLosSantos - 09 Dic 2004
El pingüino ya no tiene frío
arriba