Supervision de la réplication d’un annuaire Openldap

Dans cet article, nous allons superviser la synchronisation des annuaires openldap mis en place dans l’article
Mise en place d’un réplicat openldap en mode miroir.

Pour rappel, nous avons deux annuaires ldap-1.be-root.com et ldap-2.be-root.com répliqués à l’aide de syncrepl en mode miroir.

Nous allons mettre en place un processus de supervision sous nagios afin de vérifier qu’aucune désynchronisation entre les annuaires n’est présente.

Tout d’abord nous allons récuperer les sources du plugin check_ldap_syncrepl_status.

wget http://tools.ltb-project.org/attachments/download/152/ltb-project-nagios-plugins-0.3.tar.gz
tar zxf ltb-project-nagios-plugins-0.3.tar.gz
cp ltb-project-nagios-plugins-0.3/check_ldap_syncrepl_status.pl /usr/local/nagios/libexec/
chmod +x /usr/local/nagios/libexec/check_ldap_syncrepl_status.pl

Ce script nécessite les modules perl suivant Getopt::Long, File::Basename, POSIX, Net::LDAP, Date::Manip.
Libre à vous de les installer de la manière qui vous convient (cpan, rpmforge, …).

Vérifier que le script s’exécute correctement à l’aide de la commande :

/usr/local/nagios/libexec/check_ldap_syncrepl_status.pl -h

Nous allons maintenant configurer nagios.

Dans le fichier /etc/nagios/objects/commands.cfg, rajoutons :

define command {
command_name check_ldap_syncrepl_status
command_line $USER1$/check_ldap_syncrepl_status.pl -H $HOSTADDRESS$ -U $ARG1$ -I $ARG2$ -w $ARG3$ -c $ARG4$
}

Dans le fichier /etc/nagios/objects/hosts.cfg :

    define host{
     use linux-server
     host_name ldap-1
     alias Ldap-1
     address xxx.xxx.xxx.xxx
     parents sw-serv-4
    }
    define host{
     use linux-server
     host_name ldap-2
     alias Ldap-2
     address yyy.yyy.yyy.yyy
     parents sw-serv-3
    }

Et pour finir, dans le fichier /etc/nagios/objects/services.cfg :

define service {
        host_name ldap-2
        use generic-service
        service_description Replication SyncRepl
        check_command check_ldap_syncrepl_status!xxx.xxx.xxx.xxx!002!30!60
}

En remplaçant bien évidement les xxx.xxx.xxx.xxx par l’adresse ip de ldap-1.

Le paramètre 002 sur la ligne check_command correspond au Server ID du réplicat définit dans le fichier slapd.conf de ldap-2 :

serverID        2

Il faut cependant indiquer en paramètre 002 et non pas simplement 2.

Le paramètre 30 permet de stipuler qu’en cas de désynchronisation de plus de 30s, alors l’état est à warning.

Le paramètre 60 permet de stipuler qu’en cas de désynchronisation de plus de 60s, alors l’état est à critical.

Il reste ensuite à redémarrer nagios pour prendre en compte les modifications apportées.

Supervision de baies de stockage Dell EqualLogic avec Nagios

Après la surveillance des hôtes VMware ESX(i), nous allons nous intéresser dans cet article à un des points névralgiques d’une infrastructure VMware vSphere : le stockage. Qu’il soit local ou partagée, une attention toute particulière doit lui être accordée.

Dans le cadre de mon travail, j’ai été amené à mettre en place et à utiliser un réseau de stockage s’appuyant sur une baie de stockage Dell EqualLogic PS6000XV (SAN iSCSI).

Pour vérifier l’état de santé et mesurer des données performances des baies de stockage Dell EqualLogic, Dell fournit gratuitement l’utilitaire Dell EqualLogic SAN HeadQuarters. Il est également possible de recevoir des notifications par courrier électronique pour être averti de problèmes éventuels.

Afin de centraliser la supervision de ce type de baie de stockage au sein de la solution de supervision Nagios, il m’a fallu développer un plugin Nagios dédié à cette tâche. Il repose sur la collecte des informations à l’aide de la version 1 du protocole SNMP. Le résultat est la publication aujourd’hui sous licence GPLv2 du plugin Nagios check_snmp_dell_equallogic. Il est construit sur la notion de groupe et de membres. Chaque groupe Dell EqualLogic prend en charge jusqu’à 16 baies de stockage, que l’on appelle des membres.

Le plugin check_snmp_dell_equallogic permet de vérifier l’état de l’alimentation, des batteries, des contrôleurs, de chaque disque dur, du RAID et des interfaces réseaux. Il permet également de récupérer plusieurs données de performances comme la vitesse des ventilateurs, le nombre d’entrées/sorties par seconde (IOPS), la latence, la température, le nombre de connexion iSCSI, l’utilisation de l’espace disque et enfin la consommation des différents volumes (LUNs). Ce qui donne dans l’interface Nagios (avec le thème Vautour Style) :

– Déplacez le plugin check_snmp_dell_equallogic dans le répertoire contenant les plugins Nagios : mv check_snmp_dell_equallogic /usr/local/nagios/libexec/
– Rendez le fichier exécutable : chmod +x /usr/local/nagios/libexec/check_snmp_dell_equallogic
– Modifiez le propriétaire pour ce script : chown nagios:nagios /usr/local/nagios/libexec/check_snmp_dell_equallogic

Pour vérifier que ce plugin Nagios fonctionne correctement, il vous suffit de l’exécuter : /usr/local/nagios/libexec/check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t info

Ce qui devrait vous retourner : Member ‘BAIE01’ – Info : Storage Array Dell EqualLogic ‘xx-xxx’ (xxxxxxxx) has 2 controllers and 16 hard drives

L’argument H correspond à l’adresse IP du groupe de baies, C à la communauté SNMP, n au nom du membre et t au type d’information que vous souhaitez récupérer.  Les valeurs possibles sont : battery, connection, controller, disk, fan, health, info, io, latency, network, redundancy, temperature, usage, raid et volume. En fonction du type d’information, il vous faudra utiliser d’autres arguments tels que d pour indiquer l’identifiant du disque dur. Vous trouverez plus d’informations sur son utilisation en affichant l’aide qui accompagne ce plugin : /usr/local/nagios/libexec/check_snmp_dell_equallogic -h

Voici quelques exemples d’utilisation :

– Vérifiez l’état des batteries : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t battery

Member ‘BAIE01’ – Battery status : cache battery in controller 1 is fully functional , cache battery in controller 2 is fully functional

– Récupérez le nombre de connexion iSCSI : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t connection -w 15 -c 20

Member ‘BAIE01’ – Number of iSCSI connections : 54 | con_iscsi=54;15;20;0

– Vérifiez l’état des contrôleurs : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t controller

Member ‘BAIE01’ – Controllers status : both controllers are fully functional

– Vérifiez l’état du disque dur d’identifiant 1 : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t disk -d 1

Member ‘BAIE01’ – Disk 1 (slot 0) status (type : SAS and size 419.18 Go ) : Disk is online. RAID is fully fonctionnal

– Récupérez la vitesse des ventilateurs : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t fan

Member ‘BAIE01’ – Fan speed : ‘Power Cooling Module 0 Fan 0’ : 5010 tr/min, ‘Power Cooling Module 0 Fan 1’ : 4800 tr/min, ‘Power Cooling Module 1 Fan 0’ : 4830 tr/min, ‘Power Cooling Module 1 Fan 1’ : 4830 tr/min, | ‘Power Cooling Module 0 Fan 0’=5010 ‘Power Cooling Module 0 Fan 1’=4800 ‘Power Cooling Module 1 Fan 0’=4830 ‘Power Cooling Module 1 Fan 1’=4830

– Contrôlez l’état global de la baie de stockage : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx-C public -n BAIE01 -t health

Member ‘BAIE01’ – Global system status : OK

– Récupérez le nombre d’entrée/sortie par seconde : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01-t io

Member ‘BAIE01’ – I/O Operations Per Second : Read counter’s value is 429346443 and write counter’s value is 548035313 | read=429346443c;0;0;0 write=548035313c;0;0;0

– Récupérez la latence en lecture et écriture : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t latency

Member ‘BAIE01’ – Reading average latency value is : 3 ms, writing average latency value is 2 ms | read=3;0;0;0 write=2;0;0;0

– Vérifiez si l’interface réseau eth0 est bien connecté : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t network -i eth0

Member ‘BAIE01’ – Network interface ‘eth0’ (10.100.2.10) status : Network interface is fully functional (MTU of 9000 and Speed of 1000)

– Vérifiez la redondance et l’état de l’alimentation : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t redundancy

Member ‘BAIE01’ – Power supply status : ‘Power Cooling Module 0’ is fully fonctionnal, ‘Power Cooling Module 1’ is fully fonctionnal

– Vérifiez l’état du RAID : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t raid

Member ‘BAIE01’ – RAID status : RAID is fully fonctionnal

– Récupérez la température des différents composants : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t temperature

Member ‘BAIE01’ – Temperatures : ‘Control module 0 processor’ : 60 Degres Celcius, ‘Control module 0 chipset’ : 24 Degres Celcius, ‘Control module 1 processor’ : 58 Degres Celcius, ‘Control module 1 chipset’ : 25 Degres Celcius, ‘Control module 0 SAS Controller’ : 56 Degres Celcius, ‘Control module 0 SAS Expander’ : 75 Degres Celcius, ‘Control module 1 SAS Controller’ : 59 Degres Celcius, ‘Control module 1 SAS Expander’ : 77 Degres Celcius, ‘Control module 1 SES Enclosure’ : 43 Degres Celcius, ‘Control module 0 Battery’ : 18 Degres Celcius, ‘Control module 1 Battery’ : 18 Degres Celcius, | ‘Control module 0 processor’=60 ‘Control module 0 chipset’=24 ‘Control module 1 processor’=58 ‘Control module 1 chipset’=25 ‘Control module 0 SAS Controller’=56 ‘Control module 0 SAS Expander’=75 ‘Control module 1 SAS Controller’=59 ‘Control module 1 SAS Expander’=77 ‘Control module 1 SES Enclosure’=43 ‘Control module 0 Battery’=18 ‘Control module 1 Battery’=18

– Récupérez l’utilisation de l’espace disque : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t usage -w 90 -c 95

Member ‘BAIE01’ – Used disk space : 3.90 To with a total disk space of 4.70 To (83%) with 0% for snapshots and 0% for replication | total=5173228339200B;4655905505280;4914566922240;0 used=4295035453440B;0;0;0 snapshots=0B;0;0;0 replicas=0B;0;0;0

– Récupérez la consommation d’un volume : ./check_snmp_dell_equallogic -H xxx.xxx.xxx.xxx -C public -n BAIE01 -t volume -v volume01 -w 90 -c 95

Member ‘BAIE01’ – Volume ‘volume01’ (online) in RAID group ‘GRP01’ : 213.04 Go used on 500.00 Go (42%) | volume_used=228757340160B;483183820800;510027366400;0

Nous allons maintenant modifier la configuration de Nagios pour superviser une baie de stockage Dell EqualLogic. Cette partie dépend de l’arborescence de configuration et de l’installation de Nagios dont vous disposez.

– Ajoutez les définitions des objets command : vi /etc/nagios/objects/commands.cfg

define command {
  command_name check_dell_equallogic_battery
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t battery
}

define command {
  command_name check_dell_equallogic_connection
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t connection -w $ARG3$ -c $ARG4$
}

define command {
  command_name check_dell_equallogic_controller
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t controller
}

define command {
  command_name check_dell_equallogic_disk
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t disk -d $ARG3$
}

define command {
  command_name check_dell_equallogic_fan
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t fan
}

define command {
  command_name check_dell_equallogic_health
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t health
}

define command {
  command_name check_dell_equallogic_io
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t io
}

define command {
  command_name check_dell_equallogic_latency
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t latency
}

define command {
  command_name check_dell_equallogic_network
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t network -i $ARG3$ -m $ARG4$ -s $ARG5$
}

define command {
  command_name check_dell_equallogic_redundancy
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t redundancy
}

define command {
  command_name check_dell_equallogic_raid
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t raid
}

define command {
  command_name check_dell_equallogic_temperature
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t temperature
}

define command {
  command_name check_dell_equallogic_usage
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t usage -w $ARG3$ -c $ARG4$
}

define command {
  command_name check_dell_equallogic_volume
  command_line $USER1$/check_snmp_dell_equallogic -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -t volume -v $ARG3$ -w $ARG4$ -c $ARG5$
}

– Ajoutez la définition de l’objet host pour le groupe de baies de stockage : vi /etc/nagios/objects/hosts.cfg

define host {
  host_name grpbaies
  use generic_host
  alias Groupe de baies Dell EqualLogic
  address xxx.xxx.xxx.xxx
  contact_groups +admin
}

– Ajoutez la définition des objets service pour la baie : vi /etc/nagios/objects/services.cfg

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Alimentation
  check_command check_dell_equallogic_redundancy!public!baie01
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Batteries
  check_command check_dell_equallogic_battery!public!baie01
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Connexions_iSCSI
  check_command check_dell_equallogic_connection!public!baie01!0!0
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Controleurs
  check_command check_dell_equallogic_controller!public!baie01
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Espace_Disque
  check_command check_dell_equallogic_usage!public!baie01!90!95
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_1
  check_command check_dell_equallogic_disk!public!baie01!1
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_2
  check_command check_dell_equallogic_disk!public!baie01!2
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_3
  check_command check_dell_equallogic_disk!public!baie01!3
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_4
  check_command check_dell_equallogic_disk!public!baie01!4
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_5
  check_command check_dell_equallogic_disk!public!baie01!5
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_6
  check_command check_dell_equallogic_disk!public!baie01!6
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_7
  check_command check_dell_equallogic_disk!public!baie01!7
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_8
  check_command check_dell_equallogic_disk!public!baie01!8
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_9
  check_command check_dell_equallogic_disk!public!baie01!9
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_10
  check_command check_dell_equallogic_disk!public!baie01!10
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_11
  check_command check_dell_equallogic_disk!public!baie01!11
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_12
  check_command check_dell_equallogic_disk!public!baie01!12
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_13
  check_command check_dell_equallogic_disk!public!baie01!13
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_14
  check_command check_dell_equallogic_disk!public!baie01!14
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_15
  check_command check_dell_equallogic_disk!public!baie01!15
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Etat_Disque_16
  check_command check_dell_equallogic_disk!public!baie01!16
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Interface_Reseau_eth0
  check_command check_dell_equallogic_network!public!baie01!eth0!9000!1000
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Interface_Reseau_eth1
  check_command check_dell_equallogic_network!public!baie01!eth1!9000!1000
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Interface_Reseau_eth2
  check_command check_dell_equallogic_network!public!baie01!eth2!9000!1000
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Interface_Reseau_eth3
  check_command check_dell_equallogic_network!public!baie01!eth3!9000!1000
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_IO
  check_command check_dell_equallogic_io!public!baie01
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Latence
  check_command check_dell_equallogic_latency!public!baie01
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_RAID
  check_command check_dell_equallogic_raid!public!baie01
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_Temperature
  check_command check_dell_equallogic_temperature!public!baie01
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_volume01
  check_command check_dell_equallogic_volume!public!baie01!volume01!80!90
  contact_groups +admin
}

define service {
  host_name grpbaies
  use generic_service
  service_description BAIE01_volume02
  check_command check_dell_equallogic_volume!public!baie01!volume02!80!90
  contact_groups +admin
}

– Rechargez la configuration de Nagios : service nagios reload

Vos baies de stockage Dell EqualLogic peuvent être maintenant supervisé à l’aide de Nagios.

Mise à jour :

  • 10/10/2014 : La consommation des volumes disponibles sur plusieurs membres a été corrigée.
  • 13/11/2014 : Prise en compte de la MTU et de la vitesse pour la vérification d’une interface réseau (ajout des arguments -m et -s).

Mise en place d’un réplicat openldap en mode mirroir

Dans cet article, nous considérons que vous possédez déjà un annuaire OpenLdap fonctionnel et que vous désirez mettre en place un réplicat sur une autre machine en mode mirroir.

Par convention nous définirons le serveur existant en le nommant ldap-1.be-root.com et le réplicat à mettre en place sous le nom ldap-2.be-root.com.

Nous ne détaillerons pas l’installation d’openldap sur ldap-2.be-root.com. Cependant, il faut s’assurer que la version installée supporte syncrepl et que ce dernier a été activé lors de la compilation (–enable-syncprov=mod –enable-modules).

Sur ldap-2, nous allons utiliser le même fichier slapd.conf, les mêmes schémas que sur ldap-1.
Il convient donc de s’assurer que la configuration est strictement la même. Il faut également que ldap-1 et ldap-2 peuvent communiquer dans les deux sens (soit sur le port 389/tcp ou 636/tcp en cas d’utilisation de ssl).

Sur ldap-1, nous allons faire un dump de l’annuaire grâce à la commande slapcat et récupérer ce dump sur ldap-2.

Editons le fichier slapd.conf sur ldap-2 et ajoutons les lignes suivantes au début du fichier :

moduleload      syncprov.la
# ID du noeud
serverID        2

Il nous faut également ajouter des indexes :

index   entryCSN,entryUUID                                       eq

En fin de fichier, ajoutons les lignes :

overlay syncprov
syncprov-checkpoint     100     10
syncprov-sessionlog     100

syncrepl        rid=001
                provider=ldaps://ldap-1.be-root.com:636
                type=refreshAndPersist
                retry="60 10 300 +"
                searchbase="dc=be-root,dc=com"
                scope=sub
                schemachecking=on
                bindmethod=simple
                binddn="cn=syncrepl,dc=be-root,dc=com"
                credentials="motdepasse"
                tls_reqcert=never

mirrormode      on

La ligne retry= »60 10 300 + » permet, en cas d’impossibilité de se connecter sur ldap-1, de retenter une connexion au bout de 60s. Ceci 10 fois de suite. Si la connexion est toujours impossible au bout de ces 10 fois, alors l’intervalle passe à 300s et ceci tant que la connexion n’est pas rétablie (grâce au signe +).
Si nous ne voulons pas utiliser ssl pour la communication entre les annuaires, il suffit de remplacer la ligne provider=ldaps://ldap-1.be-root.com:636 par provider=ldap://ldap-1.be-root.com et de supprimer la ligne tls_reqcert=never.
L’utilisateur cn=syncrepl,dc=be-root,dc=com a été explicitement crée pour la réplication. Il est bien entendu possible de le remplacer par n’importe quel compte ayant des droits de lecture/écriture sur l’ensemble des attributs.

Intégrons le dump récupéré précédemment de ldap-1 grace à la commande slapadd.

Dans le fichier /etc/openldap/slapd.conf sur ldap-1 faisons ces modifications en début de fichier :

moduleload      syncprov.la
# ID du noeud
serverID        1

Il nous faut également ajouter des indexes :

index   entryCSN,entryUUID                                       eq

En fin de fichier, ajoutons les lignes :

overlay syncprov
syncprov-checkpoint     100     10
syncprov-sessionlog     100

syncrepl        rid=001
                provider=ldaps://ldap-2.be-root.com:636
                type=refreshAndPersist
                retry="60 10 300 +"
                searchbase="dc=be-root,dc=com"
                scope=sub
                schemachecking=on
                bindmethod=simple
                binddn="cn=syncrepl,dc=be-root,dc=com"
                credentials="motdepasse"
                tls_reqcert=never

mirrormode      on

Ré-indexons l’annuaire à l’aide de la commande slapindex Redémarrons openldap sur ldap-1 et ldap-2. Nous pouvons voir dans les logs que le processus synchronisation se lance grace à la connexions de l’utilisateur syncrepl.
Il est également possible de tester le bon fonctionnement de l’ensemble en changeant un attribut d’une entrée sur ldap-2 et en vérifiant que la modification a été bien répliquée sur ldap-1 (et vice-versa).