root/scripts/ldap/addhost-workstation.sh @ 541
535 | adminies.v | #!/bin/bash
|
|
#Añade un host al directorio LDAP
|
|||
#Ricardo Salgado Cid
|
|||
#IESO Galisteo
|
|||
#
|
|||
#21/03/11 Corregido bug en la comprobacion de si el equipos existe en el Netgroup
|
|||
# Adaptado para funcionar con ldaps
|
|||
# Ya no es necesario el hack para modificar el Netgroup
|
|||
#23/09/09 Corregido problema de compatibilidad con ldap-utils 2.4.x
|
|||
#24/03/09 Release incial ()
|
|||
PASSWORDLDAP=""
|
|||
#Usa el valor de esta variable como password de ldap en vez de pedirla en cada ocasión.
|
|||
#Ojo!, utilizar con cuidado
|
|||
if [ $# -ne 3 ]; then
|
|||
echo "Uso: $0 hostname ip mac"
|
|||
exit
|
|||
fi
|
|||
dominio=`hostname -d`
|
|||
host=$1
|
|||
ip=$2
|
|||
ip1=$(echo $ip | cut -d"." -f1)
|
|||
ip2=$(echo $ip | cut -d"." -f2)
|
|||
ip3=$(echo $ip | cut -d"." -f3)
|
|||
ip4=$(echo $ip | cut -d"." -f4)
|
|||
mac=$(echo $3 |tr '[:lower:]' '[:upper:]')
|
|||
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: add
|
|||
objectclass: dnsdomain2
|
|||
objectclass: domainrelatedobject
|
|||
dc: $ip4
|
|||
associateddomain: $ip4.$ip3.$ip2.$ip1.in-addr.arpa
|
|||
PTRRecord: $host.$dominio
|
|||
dn: dc=$host,dc=$dominio,ou=hosts,dc=instituto,dc=extremadura,dc=es
|
|||
changetype: add
|
|||
objectclass: dnsdomain2
|
|||
objectclass: domainrelatedobject
|
|||
dc: $host
|
|||
associateddomain: $host.$dominio
|
|||
ARecord: $ip
|
|||
dn: cn=$host,cn=group1,cn=INTERNAL,cn=DHCP Config,dc=instituto,dc=extremadura,dc=es
|
|||
changetype: add
|
|||
cn: $host
|
|||
objectClass: top
|
|||
objectClass: dhcpHost
|
|||
dhcpHWAddress: ethernet $mac
|
|||
dhcpStatements: fixed-address $host
|
|||
" > $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 "nisNetgroupTriple: ($host,-,-)" >> $FICHERO
|
|||
echo "Añadiendo $host.$dominio a ldap con ip=$ip y mac=$mac"
|
|||
if [ "$PASSWORDLDAP" ]; then
|
|||
ldapmodify -c -x -H ldaps://ldap.$dominio -w$PASSWORDLDAP -D "cn=admin,ou=People,dc=instituto,dc=extremadura,dc=es" -f $FICHERO
|
|||
else
|
|||
ldapmodify -c -x -H ldaps://ldap.$dominio -W -D "cn=admin,ou=People,dc=instituto,dc=extremadura,dc=es" -f $FICHERO
|
|||
fi
|