3.2. Utiliser Ansible pour s'assurer que des accords de réplication existent entre plusieurs répliques IdM
Les données stockées sur un serveur de gestion des identités (IdM) sont répliquées sur la base d'accords de réplication : lorsque deux serveurs ont un accord de réplication configuré, ils partagent leurs données. Les accords de réplication sont toujours bilatéraux : les données sont répliquées de la première réplique vers l'autre et de l'autre réplique vers la première.
Cette section décrit comment garantir l'existence d'accords de réplication entre plusieurs paires de répliques dans IdM.
Conditions préalables
- Assurez-vous de bien comprendre les recommandations relatives à la conception de votre topologie IdM, énumérées dans la section Connexion des répliques dans une topologie
-
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
add-topologysegments.yml
Ansible playbook situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/topology/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/topology/add-topologysegments.yml add-topologysegments-copy.yml
-
Ouvrez le fichier
add-topologysegments-copy.yml
pour le modifier. Adaptez le fichier en définissant les variables suivantes dans la section
vars
:-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. Pour chaque segment topologique, ajoutez une ligne dans la section
ipatopology_segments
et définissez les variables suivantes :-
Définissez la variable
suffix
àdomain
ouca
, en fonction du type de segment que vous souhaitez ajouter. -
Définissez la variable
left
avec le nom du serveur IdM que vous voulez être le nœud gauche de l'accord de réplication. -
Définissez la variable
right
avec le nom du serveur IdM que vous voulez être le nœud droit de l'accord de réplication.
-
Définissez la variable
-
Fixer la variable
Dans la section
tasks
du fichieradd-topologysegments-copy.yml
, assurez-vous que la variablestate
est fixée àpresent
.Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Add topology segments hosts: ipaserver gather_facts: false vars: ipaadmin_password: "{{ ipaadmin_password }}" ipatopology_segments: - {suffix: domain, left: replica1.idm.example.com , right: replica2.idm.example.com } - {suffix: domain, left: replica2.idm.example.com , right: replica3.idm.example.com } - {suffix: domain, left: replica3.idm.example.com , right: replica4.idm.example.com } - {suffix: domain+ca, left: replica4.idm.example.com , right: replica1.idm.example.com } vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Add topology segment ipatopologysegment: ipaadmin_password: "{{ ipaadmin_password }}" suffix: "{{ item.suffix }}" name: "{{ item.name | default(omit) }}" left: "{{ item.left }}" right: "{{ item.right }}" state: present #state: absent #state: checked #state: reinitialized loop: "{{ ipatopology_segments | default([]) }}"
- 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 add-topologysegments-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
.