"Después del juego es antes del juego"
Sepp Herberger

miércoles, 30 de junio de 2021

Puesta a punto de portátiles de alumnos al final de curso

Cuando se nos van los niños nos toca hacer una limpieza y actualización de los portátiles para quedarlo todo listo de cara al curso venidero. Voy a repasar las actuaciones que realizo para dejarlo todo en orden. Primero verifico en cada portátil que los paquetes están bien y actualizo todo:
# dpkg --configure -a
# apt-get update
# apt-get upgrade
# puppet agent -tv
Luego lanzo un script para limpiar los perfiles de los usuarios, borrar todas las conexiones wifi creadas excepto "educarex" y restaurar el background por defecto en el lightdm (en el caso de que la tengamos personalizada según conté en esta entrada antigua)
# cat limpiar-usuarios-y-wifi.sh
#!/bin/bash

#Limpia credenciales cacheadas
sss_cache -E
rm -rf /var/lib/sss/db/cache_LDAP.ldb

#Limpia conexiones wifi antiguas, excepto educarex
if [ -e /etc/NetworkManager/system-connections/educarex ]
then
    cp /etc/NetworkManager/system-connections/educarex /tmp/educarex
    rm /etc/NetworkManager/system-connections/*
    cp /tmp/educarex /etc/NetworkManager/system-connections/
else
    rm /etc/NetworkManager/system-connections/*
fi

#Limpia homes antiguos
rm -rf /home/alumnos/*

#Pone background por defecto. 
cp -f  /usr/share/xfce4/backdrops/linexEDU_2018_4_bak.png /usr/share/xfce4/backdrops/linexEDU_2018_4.png
Hacer esto en todos los portátiles uno a uno es un poco latoso. Para evitar esta tarea repetitva lo que hago es encenderlos por grupos, dejando que se conecten a la red wifi del centro de forma automática. Luego hago un nmap para localizar estos equipos y mostrar sus IP y nombres:
# cat escanear-educarex-nombres 
#!/bin/bash

red="10.192.x.0" # Cambiar x por la subred de tu centro.
password="contraseña de root de portatiles" 

machines=$(nmap -p 22 ${red}/24 | cut -d" " -f5 | grep 10)
for maquina in $machines
do
   name=$(sshpass -p${password} ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@$maquina 'echo $HOSTNAME' 2> /dev/null)
   echo "$maquina ->  $name"
done
echo ""
Esto genera una salida como:
# ./escanear-educarex-nombres 
10.192.x.1 ->  
10.192.x.75 ->  
10.192.x.102 -> porthp-o12  
10.192.x.143 -> porthp-o11
....
10.192.x.153 ->  
10.192.x.154 ->  porthp-o25
...
En este listado anterior sacamos las IP de todos los dispositivos conectados a la red "educarex" que tienen el puerto 22 (ssh) abierto. Si son portátiles inicia sesión en ellos y muestra su nombre, lo cual nos permite identificar los equipos de forma fehaciente. Una vez tenemos este listado de IPs podemos hacer una conexión multiple hacia ellas con tmux-cssh:
# tmux-cssh -u root 10.192.x.102 10.192.x.143 ... 10.192.x.154 ...
Esto abre en paralelo un porrón de conexiones ssh que nos permiten trabajar con todos los portátiles a la vez, escribiendo comandos que se lanzan de forma simultánea en todos ellos. De esta manera puedo operar con 30, 50.. portátiles sin problema, avanzando rápidamente.

Otra cosa que me gusta hacer es verificar el estado de salud de la batería de los portátiles. Cuando los enciendo me cuido de que estén completamente cargados al máximo y una vez actualizados y limpios lanzo el siguiente comando usando la consola tmux-cssh:
# while true
do
   uptime                                                                              
   upower -i /org/freedesktop/UPower/devices/battery_BAT0  | grep percen 
   sleep 10
done  
Con esto lanzo simultaneamente un bucle infinito que muestra el tiempo de encendido y bateria restante, actualizándose cada 10 segundos. De esta manera, tras un rato podemos chequear como baja la batería en cada uno de los portátiles y hacernos una idea de su salud.

Una vez hecho esto ya podemos retornar los portátiles al armario y dejarlos ya listos para ser usados el próximo curso.

Alucinante video de la Zhurong en Marte. La primera vez que vemos un vídeo y oímos un rover movíendose por la superfice de Marte, con el aterrizador de fondo. Los camaradas chinos han vuelto a lucirse:



Habrá que celebrarlo como se merece: