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

Mostrando entradas con la etiqueta ldap. Mostrar todas las entradas
Mostrando entradas con la etiqueta ldap. Mostrar todas las entradas

jueves, 23 de marzo de 2023

Script para chequear el árbol LDAP

Los servicios LDAP que tenemos en los centros se basan en OpenLDAP, que guarda información en una base de datos jerárquica. Las bases de datos jerárquicas son esas que estudias en la carrera antes de las bases relacionales y luego olvidas para siempre, porque tienen un uso mucho más limitado. Si quieres saber más de ellas pincha aquí.

Pese a sus ventajas, como la rapidez para algunas consultas, tienen ciertas desventajas. Una de ellas es que, en el caso de OpenLDAP, los datos quedan inconsistentes con cierta frecuencia, de tal manera que se va acumulando "información basura" dentro de las diversas ramas. Por ejemplo: ramas vacías, grupos con miembros no existentes, atributos duplicados...

Para un trabajo que estoy perpetrando, necesitaba tener el ldap de mi red limpito y consistente. Por ello he unificado diversos scripts que tenía en uno solo que recorre el árbol ldap y muestra todo lo que resulta sospechoso. Avisos:
  • OJO: este script no arregla nada, solo muestra las cosas rarunas que encuentra. El arreglo nos corresponde a nosotros a mano usando la herramienta web phpldapadmin.
  • IMPORTANTE: antes de tocar nada se aconseja hacer un backup de ldap por si la liamos parda, aquí un script de Esteban para hacer el backup y otro para restaurarlo.
El script de chequeo se puede encontrar en este enlace. Allí hay además una relación de las comprobaciones que se hacen.

Out!
Ya tenemos al Miura 1 en la rampa de lanzamiento, listo para su primer vuelo desde las instalaciones de El Arenosillo, en Huelva:
Esperemos que en las próximas semanas el inexistente programa espacial español dé un paso exitoso con el lanzamiento de esta maravilla.

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.