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

viernes, 23 de septiembre de 2022

Cambiar hostname de un equipo de forma automática a partir de los datos de ldap.

Como todo principio de curso, andamos de mundanza moviendo equipos de unas aulas a otras. Eso implica cambiar su nombre según la nomenclatura que sigamos en nuestro centro, para tenerlo localizado ante cualquier alarma o incidencia.

En el árbol ldap de nuestra red tenemos una entrada en la que asociamos la MAC de cada equipo con su hostname. Una vez hemos cambiado el nombre allí luego toca ir fisicamente al propio equipo y cambiar dicho hostname otra vez a mano. Como esta parte es muy aburrida he escrito un script que toma la MAC del equipo, la busca en ldap y si la encuentra cambia el hostname al que allí aparece.
# cat set-hostname-from-mac.sh 

#!/bin/bash

#Busca las MACs en ldap y si tienen un nombre asociado, configura el equipo con dicha mac.

#Sacamos las MACs de las tarjetas de red del equipo
macs=$(cat /sys/class/net/*/address | grep -v "00:00:00:00:00:00")

for mac in $macs
do
   #Buscamos en la MAC en ldap en la rama de configuración DHCP
   name=$(ldapsearch -xLLL -h ldap -b cn=DHCP\ Config,dc=instituto,dc=extremadura,dc=es "(dhcpHWAddress=ethernet $mac)" "cn" | grep "^cn" | cut -d" " -f2)
   if [ -n  "$name" ]
   then
         echo "Nombre nuevo: $name"

         echo $name > /etc/hostname
         hostname -F /etc/hostname
         echo $name > /proc/sys/kernel/hostname
         sed -i "s/127.0.1.1.*/127.0.1.1 $name/g"  /etc/hosts

         exit 0
   fi
done
echo "MAC no encontrada"
exit

Este script podemos ejecutarlo desde una tarea puppet o en paralelo sobre muchos equipos a la vez usando tmux-cssh.


Bonita foto tomada desde la ISS del despegue de la Soyuz MS-22 hace un par de días, con un astronauta estadounidense y dos astronautas rusos. Al menos allí arriba no hay guerras.

Nunca había visto un chemtrail de una Soyuz. Los conspiranoicos correrían en círculos gritando si se enterasen.

No hay comentarios:

Publicar un comentario