Tutorial: Recuperación e Instalación rápida de Terminales con Software Libre
Dicen que ante la presión la mente se agudiza, en mi caso ha sido así ya que hace unos meses se decidió cambiar todo el parque de ordenadores del centro donde trabajo y la cantidad de curro que se me avecinaba tenía pinta de querer acabar conmigo
Realmente esto que deseo contar en el artículo dudo que sea muy novedoso, es más seguramente rebuscando por internet otros lectores hayan terminado haciendo algo parecido a lo que voy a contar. Pero no divago más y os cuento la idea.
El problema es que tengo casi 50 terminales que instalar y lo peor de todo: quieren tenerlos YA, por que los viejos se caen a cachos
Así que me he preparado un pequeño sistema de montaje de ordenadores usando software libre. Si, todos conocemos norton ghost, pero que queréis que os diga viendo como funciona esto que le den mucho al ghost xDDD
WARNING: Este artículo requiere conocimientos básicos de Linux y redes
Necesitamos:
- SysTemRescueCD en Memoria USB o en un CD canonizado.
- Red Ethernet Gigabit, si es posible.
- Servidor SSH bajo linux, (sino no sería SL xD).
- Estación de trabajo que hará de Base.
Vamos que 3 cositas que todo buen administrador debe tener, nada complicado
El primer paso es crear una configuración base del sistema, por ejemplo en mi trabajo íbamos a tener dos configuraciones: Windows Administración y Windows Tutores y Alumnos. En mi caso todos los ordenadores comparten prácticamente la misma configuración de licencias, programas y drivers. Seguramente algún lector no tenga tanta suerte, pero puedes crear una configuración base, sin drivers y luego simplemente instalas en 5 minutos los drivers de la CPU y listo ^_^
Una vez tenemos el terminal con todo lo que necesitamos instalado como base, desfragmentamos (si esa cosa rara que necesitan los windows) y en la máquina servidor nos aseguramos que tenemos instalado el servidor SSH.
sudo apt-get install ssh
Y creamos una carpeta en nuestro home que albergará las imágenes, y se encuentra en /home/david/Images, ya cada uno que la cree donde quiera
Con el terminal preparado, reiniciamos la máquina con el SysRescue introducido, aparecerá la típica ventana de los viejos Linux y simplemente pulsamos [INTRO]. Configuramos la red y conectamos al servidor usando fuse ssh, algo tan simple como:
sshfs usuario@ip_server:/path/a/montar /path/local
Si nuestro servidor es 192.168.1.1, nuestro usuario fuera “david” y deseamos montar en el terminal el directorio que nombramos antes, sería algo como:
sshfs david@192.168.1.1:/home/david/Images /mnt/windows
Uso el directorio de windows dentro de mnt, por simple y llana comodidad.
Con esto ya podemos trabajar en /mnt/windows como si estuviéramos físicamente en el directorio del servidor, esto nos valdrá para crear la imagen de una forma muy simple ya veréis
La automatización del proceso viene a cargo de un par de scripts que guardaremos en el servidor y que se podrían convertir perfectamente en uno, si alguno se anima a modificarlo (recordad enviad las modificaciones). Pero que para la labor que se les encomienda son perfectamente útiles…
Os presento a mBackup.sh y mInstall.sh, que pueden ser libremente usados bajo licencia GNU v2
mBackup.sh
#!/bin/sh
##
# GPL v2 (c) 2008 - D_Skywalk
## version 0.5
#### CONFIG
$HD=/dev/Xda # Hardisk
$PRT=/dev/Xda1 #Partition
$NET_PATH=/mnt/windows/Images
#### CODE
#
if [ -z "$1" ]; then
echo " usage: $0 "
exit 1
fi
echo -n " Script Running - Sleep Time for Secure STOP "
sleep 1
echo -n "."
sleep 1
echo -n "."
sleep 1
echo "."
sleep 1
echo "Loading partimage for SYS - Rev $1"
sleep 2
partimage -z1 -o save $PRT $NET_PATH/Image-SYS_r$1.partimg.gz
echo "Saving MBR-DAT - Rev $1"
dd if=$HD of=$NET_PATH/backup-mbr_r$1.bin count=1 bs=512
echo "Saving MBR-STRUCT - Rev $1"
sfdisk -d $HD > backup-mbr_r$1.sf
echo "FINISH!!!"
sleep 1
echo " "
echo " Script by D_Skywalk GPL vc (c) 2008"
exit 0
mInstall.sh
#!/bin/sh
##
# GPL v2 (c) 2008 - D_Skywalk
## version 0.5
#### CONFIG
$HD=/dev/Xda # Hardisk
$PRT=/dev/Xda1 #Partition
$NET_PATH=/mnt/windows/Images
#### CODE
#
if [ -z "$1" ]; then
echo " usage: $0 "
exit 1
fi
echo -n " Script Running - Sleep Time for Secure STOP "
sleep 1
echo -n "."
sleep 1
echo -n "."
sleep 1
echo "."
sleep 1
echo "Install MBR-DAT - Rev $1"
dd if=$NET_PATH/backup-mbr_r$1.bin of=$HD
sleep 2
echo "Install MBR-STRUCT - Rev $1"
sfdisk $HD < $NET_PATH/backup-mbr_r$1.sf
sleep 2
echo "Loading partimage for Install Win2k - Rev $1"
sleep 2
partimage restore $PRT $NET_PATH/Win2k-UNED_r$1.partimg.gz.000
echo "FINISH!!!"
sleep 1
echo " "
echo " Script by D_Skywalk GPL vc (c) 2008"
exit 0
Como veis nada del otro jueves, estos pueden ser unificados fácilmente pero yo no me puse por no verlo realmente necesario para mis simples propósitos. Los scripts además guardan unos segundos de espera, por si te equivocaste al configurarlo, ya que una vez en proceso esté “corriendo” lo mejor es no pararlo
Lo importante de los scripts es la configuración, debéis completar las variables de HD, PRT y NET_PATH, con los valores que os correspondan (recordad que podéis arrancar gparted desde las X – startx en sysrescue- si no sabéis si es hda, hdb, sda, sdb…)
El penúltimo paso es guardarlos en el servidor en vuestra carpeta de imágenes. Los scripts sólo permiten señalar un parámetro, la REVISIÓN, que yo la uso para diferenciar versiones y demás. Para lanzarlos simplemente hacemos desde el terminal con sysrescue:
/mnt/windows/mBackup.sh BASE-WINDOWS-1
Esto creará una estructura de disco exactamente igual, tanto la tabla de particiones como el mbr y por supuesto el sistema operativo; guardándolo todo (en mi caso) en /home/david/Images
Una vez hecho esto (no dura más de 4 minutos para un par de gigas de SO). Apagamos el terminal base y disponemos una nueva máquina en la mesa, que recibirá nuestro clon guardado.
Arrancamos Sysrescue en el nuevo terminal y realizamos de nuevo los pasos que hicimos en el terminal BASE, es decir, configuramos la red y montamos de nuevo el path en red por ssh. Una vez hecho esto lanzamos la instalación con:
/mnt/windows/mInstall.sh BASE-WINDOWS-1
Recordad el nombre que le disteis a la revisión, por que debe ser la misma
En menos de 2 minutos tienes el nuevo terminal preparado para ser mangoneado por el personal
Espero que os sea útil, os salve u os de ideas para hacerlo aún mejor, si eso es posible
TODO / MEJORAS
Lo suyo sería que el script mirando el /proc/partitions comprobara las particiones del sistema y guardara todo sin tener que configurar a mano nada más que el path de destino en red. E incluso que mirando en proc luego dejara marcar las que deseas guardar/recuperar
… Para otro año