|
#!/bin/bash
|
|
|
|
#Borra un host del directorio LDAP
|
|
#Ricardo Salgado Cid
|
|
#IESO Galisteo
|
|
#
|
|
#20/03/11 Release incial ()
|
|
|
|
if [ $# -ne 1 ]; then
|
|
echo "Uso: $0 hostname"
|
|
exit
|
|
fi
|
|
|
|
|
|
dominio=`hostname -d`
|
|
host=$1
|
|
dn=$(ldapsearch -xLLL -h ldap -b cn="DHCP Config",dc=instituto,dc=extremadura,dc=es "(&(objectClass=dhcpHost)(cn=$host))" dn | perl -p0e 's/\n //g')
|
|
|
|
if [ ! "$dn" ] ; then
|
|
echo "No hay ningun equipo llamado $host"
|
|
exit 1
|
|
fi
|
|
|
|
ip=$(ldapsearch -xLLL -h ldap -b dc="$dominio",ou="hosts",dc=instituto,dc=extremadura,dc=es "(&(|(objectClass=dNSDomain2)(objectClass=dNSDomain))(dc=$host))" | grep aRecord: | cut -d" " -f2)
|
|
|
|
ip1=$(echo $ip | cut -d"." -f1)
|
|
ip2=$(echo $ip | cut -d"." -f2)
|
|
ip3=$(echo $ip | cut -d"." -f3)
|
|
ip4=$(echo $ip | cut -d"." -f4)
|
|
|
|
FICHERO=$host.$dominio.ldif
|
|
if [ -e $FICHERO ]; then
|
|
rm $FICHERO
|
|
fi
|
|
|
|
echo "
|
|
dn: dc=$ip4,dc=$ip3,dc=$ip2,dc=$ip1,dc=in-addr,dc=arpa,ou=hosts,dc=instituto,dc=extremadura,dc=es
|
|
changetype: delete
|
|
|
|
dn: dc=$host,dc=$dominio,ou=hosts,dc=instituto,dc=extremadura,dc=es
|
|
changetype: delete
|
|
|
|
dn: cn=$host,cn=group1,cn=INTERNAL,cn=DHCP Config,dc=instituto,dc=extremadura,dc=es
|
|
changetype: delete
|
|
|
|
" > $FICHERO
|
|
|
|
echo "dn: cn=workstation-hosts, ou=Netgroup,dc=instituto,dc=extremadura,dc=es
|
|
changetype: modify" >> $FICHERO
|
|
echo "replace: nisNetgroupTriple" >> $FICHERO
|
|
ldapsearch -xLLL -h ldap -b ou=Netgroup,dc=instituto,dc=extremadura,dc=es "(cn=workstation-hosts)" | grep nisNetgroupTriple | grep -v "nisNetgroupTriple: ($host," | while read triple
|
|
do
|
|
echo $triple >> $FICHERO
|
|
done
|
|
|
|
echo "Borrando $host.$dominio de ldap con ip=$ip"
|
|
|
|
ldapadd -c -x -H ldaps://ldap.$dominio -W -D "cn=admin,ou=People,dc=instituto,dc=extremadura,dc=es" -f $FICHERO
|
|
|
|
|
|
read -p "Intentar borrar tambien los restos en puppet (s/n)?"
|
|
if [ $REPLY != "s" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$(hostname)" = "servidor" ]; then
|
|
puppetca --clean $host.$dominio; rm /var/lib/puppet/yaml/facts/$host.$dominio.yaml; rm /var/lib/puppet/yaml/node/$host.$dominio.yaml
|
|
else
|
|
echo "Es necesaria la contrseña de root del servidor nfs"
|
|
ssh root@servidor "puppetca --clean $host.$dominio; rm /var/lib/puppet/yaml/facts/$host.$dominio.yaml; rm /var/lib/puppet/yaml/node/$host.$dominio.yaml"
|
|
fi
|
|
|
|
|