15.5. Utiliser Ansible pour réinitialiser une réplique IdM
Si un réplica a été déconnecté pendant une longue période ou si sa base de données a été corrompue, vous pouvez le réinitialiser. La réinitialisation actualise le réplica avec un ensemble de données mises à jour. La réinitialisation peut, par exemple, être utilisée si une restauration autoritaire à partir d'une sauvegarde est nécessaire.
Contrairement aux mises à jour de réplication, au cours desquelles les répliques ne s'envoient que les entrées modifiées, la réinitialisation rafraîchit l'ensemble de la base de données.
L'hôte local sur lequel vous exécutez la commande est le réplica réinitialisé. Pour spécifier le réplica à partir duquel les données sont obtenues, utilisez l'option direction
.
Cette section décrit comment utiliser un playbook Ansible pour réinitialiser les données domain
sur replica.idm.example.com à partir de server.idm.example.com.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. Vous avez configuré votre nœud de contrôle Ansible pour qu'il réponde aux exigences suivantes :
- Vous utilisez la version 2.8 ou ultérieure d'Ansible.
-
Vous avez installé le paquetage
ansible-freeipa
sur le contrôleur Ansible. - L'exemple suppose que dans le répertoire ~/MyPlaybooks/ vous avez créé un fichier d'inventaire Ansible avec le nom de domaine complet (FQDN) du serveur IdM.
-
L'exemple suppose que le coffre-fort secret.yml Ansible stocke votre
ipaadmin_password
.
Procédure
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Copiez le fichier
reinitialize-topologysegment.yml
Ansible playbook situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/topology/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/reinitialize-topologysegment.yml reinitialize-topologysegment-copy.yml
-
Ouvrez le fichier
reinitialize-topologysegment-copy.yml
pour le modifier. Adaptez le fichier en définissant les variables suivantes dans la section
ipatopologysegment
:-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. -
Fixez la variable
suffix
àdomain
. Si vous réinitialisez les donnéesca
, fixez la variable àca
. -
Définissez la variable
left
sur le nœud gauche de l'accord de réplication. -
Définissez la variable
right
sur le nœud de droite de l'accord de réplication. -
Définissez la variable
direction
en fonction de la direction des données réinitialisées. La directionleft-to-right
signifie que les données circulent du nœud gauche vers le nœud droit. Assurez-vous que la variable
state
est définie surreinitialized
.Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to handle topologysegment hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Reinitialize topology segment ipatopologysegment: ipaadmin_password: "{{ ipaadmin_password }}" suffix: domain left: server.idm.example.com right: replica.idm.example.com direction: left-to-right state: reinitialized
-
Fixer la variable
- Enregistrer le fichier.
Exécutez le playbook Ansible. Spécifiez le fichier du livre de jeu, le fichier contenant le mot de passe protégeant le fichier secret.yml et le fichier d'inventaire :
$ ansible-playbook --vault-password-file=password_file -v -i inventory reinitialize-topologysegment-copy.yml
Ressources supplémentaires
- Voir Explication des accords de réplication, des suffixes de topologie et des segments de topologie.
-
Voir le fichier
README-topology.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/topology
.