Servidor Maestro y dos réplicas

La carga de datos se hará con el mismo script de la sección anterior, tanto en el maestro como en los esclavos, con las siguientes diferencias:

En el maestro por ejemplo "DC=CHAOSDIMENSION,DC=ORG" ejecutaremos este script crea_base.sh para crear la base:

Configuración Crea Base Maestro
#!/bin/sh
if [ ${#@} != 1 ]
then
echo "Se necesita el parámetro DN base del maestro"
echo "Por ejemplo crea_base.sh dc=CHAOSDIMENSION,dc=ORG"
exit
fi
DC=`echo $1|cut -d\= -f 2|cut -d\, -f 1`
slapadd << EOF
dn: $1
objectClass: dcObject
objectClass: organization
description: Base object
dc: $DC
o: My own Base Organization
EOF
Fin

Además con el script de la sección anterior cargaremos los dominios de ejemplo:
"DC=dominio1,DC=CHAOSDIMENSION,DC=ORG" y "DC=dominio2,DC=CHAOSDIMENSION,DC=ORG".

En el esclavo1 ejecutaremos el script con "DC=dominio1,DC=CHAOSDIMENSION,DC=ORG" y en esclavo2 con "DC=dominio2,DC=CHAOSDIMENSION,DC=ORG".
En ambos casos los dos servidores LDAP esclavos habrán sido configurados para su propio DN.

Lo que nos faltaría seria crear el usuario para la replica, que se podría hacer con el siguiente script usuario_replica.sh con parámetros nombre del usuario y el DN base:

Configuración Usuario Réplica
#!/bin/sh
if [ ${#@} != 2 ]
then
echo "Se necesita los parametros nombre de usuario y DN base para replica"
echo "Por ejemplo usuario_replica.sh replicator dc=dominio1,dc=CHAOSDIMENSION,dc=ORG "
exit
fi
KEY=`makepasswd -crypt -chars=7 \
-string="abcdefghijklmnopqrstuvwxyz1234567890"`
PASS=`echo $KEY|awk '{ print $1 }'`
CRYPT=`echo $KEY|awk '{ print $2 }'`
echo "Creando usuario $1 con contraseña: $PASS"
slapadd << EOF
dn: cn=$1,ou=people,$2
displayName: Debian User,,,
userPassword: {crypt} $CRYPT
sambaLMPassword:
sambaNTPassword:
sn: $1
givenName: $1
cn: $1
homeDirectory: /home/$1
loginShell: /bin/false
uidNumber: 10000
gidNumber: 100
gecos: $1
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
shadowInactive: 0
shadowLastChange: 12438
gosaDefaultLanguage: es_ES
uid: $1
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: gosaAccount
objectClass: top
EOF
Fin

aescanero AT gmail.com