Hasta ahora para tener conectividad tras encender los portátiles había 2 alternativas:
- Conectarlos por red cableada a las tomas del suelo o un switch del aula.
- Iniciar sesión en cada uno de ellos y conectarlos manualmente a la red Wifi del aula.
Y esa es la idea de este post: basándome en un script de conexión que usa en su centro nuestro compañero Esteban lo he adaptado para que se conecte de forma autónoma a una red wifi concreta predefinida tan pronto como la detecte.
El código del script es (nota: he corregido algunas erratas en el script el 8/10/2019):
# cat /usr/local/bin/conecta-default-wifi
#!/bin/bash
idioma=$LC_ALL
export LC_ALL=C
wifi_maestra="WIFI_AULAS"
wifi_key="a12345678"
nombre_conexion="ies"
activado=$(nmcli radio wifi)
if [ "$activado" != "enabled" ]
then
nmcli radio wifi on #activamos la wifi si no lo esta
fi
conectado=$(nmcli dev status | grep wifi | grep -w -e 'connected' -e "conectado" | awk ' {print $4}')
if [ "$conectado" != "$nombre_conexion" ] # Si no estamos conectados a la wifi maestra...
then
definida=$(nmcli con | grep wifi | grep -w "$nombre_conexion") #Si ya se definió la conexión en network manager la quitamos, para crearla de nuevo cuando nos conectemos
if [ -n "$definida" ]
then
nmcli con delete "$nombre_conexion"conecta-default-wifi
fi
detectada=$(nmcli -f SSID,BSSID,SIGNAL,SECURITY dev wifi list | grep -w "$wifi_maestra")
if [ -n "$detectada" ] # Si la wifi maestra está al alcance....
then
#Si la wifi maestra está al alcance y no estamos en ella, conectamos automaticamente.
nmcli dev wifi con "$wifi_maestra" password "$wifi_key" name "$nombre_conexion"
#Si ya existiese la conession podriamos hacer: nmcli con up $ssidconfigurado
fi
fi
export LC_ALL=$idioma
exit 0
Que distribuyo con estas reglas puppet:file {"/usr/local/bin/conecta-default-wifi":
owner=>root, group=>root, mode=>755,
source=>"puppet:///modules/xubuntu18_portatil_ajustes/conecta-default-wifi",
}
cron { "cron_conecta_default_wifi":
command => "/usr/local/bin/conecta-default-wifi",
user => root,
minute => "*/3",
ensure => present
}
Por tanto tenemos un script y una tarea cron que lo llama cada 3 minutos. El script hace lo siguiente:- Configuramos parámetros para una red wifi con SSID "WIFI_AULAS", una clave fija y un nombre de conexión "ies" para el Network Manager.
- Si la tarjeta wifi está apagada en Network Manager, se enciende.
- Si la wifi está conectada a un punto wifi, mira si el nombre de la SSID es "WIFI_AULAS". En caso afirmativo, finalizamos el script y no continuamos en los pasos siguientes.
- Si existe alguna conexión en Network Manager con el nombre "ies", la borramos. Esto es simplemente para hacer limpieza si ya nos habíamos conectado antes.
- Escaneamos las redes wifi circundantes en busca de "WIFI_AULAS". Si la encontramos a nuestro alcance nos conectamos a ella creando una conexión "ies" en Network Manager.
- Todo esto se repite cada 3 minutos, de tal forma que tan pronto aparezca en el espectro radioeléctrico la wifi "WIFI_AULAS" el portátil se conectará a ella, desconectando de cualquier otra red wifi en la que estuviera enlazado y permaneciendo conectado mientras esté a su alcance.
Con esto el trabajo queda reducido a llegar al aula con un punto wifi (vale cualquier punto de acceso portátil, incluido un router casero de ADSL) configurado con WIFI_AULAS y la clave indicada, enchufarlo a un punto de red cableado, sacar los portátiles del armario y encenderlos.
En pocos minutos todos estarán conectados a la wifi sin ninguna actuación por nuestra parte y con tmux-cssh o ssh podremos controlarlos. Incluso si tenemos puppet y pgksync en modo automático se ejecutarán sin que tengamos que hacer nada. El punto de acceso solo lo usaremos cuando queramos trabajar de esta manera. El resto del tiempo estará apagado y guardado.
Debido a que te encuentras que la gente mas insospechada se niega a creer la gesta del Apolo XI, ahí va el documental definitivo:
Ahora que llegan las vacaciones viene bien dar un repaso a todos los portátiles de los alumnos: ejecutar puppet, pkgsync, limpiar los usuarios cacheados. consejoscomunales.net/cultura-wari-o-huari/
ResponderEliminar