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