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

  1. Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :

    $ cd ~/MyPlaybooks/
  2. 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
  3. Ouvrez le fichier add-topologysegments-copy.yml pour le modifier.
  4. Adaptez le fichier en définissant les variables suivantes dans la section vars:

    • Fixer la variable ipaadmin_password au mot de passe de l'IdM admin.
    • Pour chaque segment topologique, ajoutez une ligne dans la section ipatopology_segments et définissez les variables suivantes :

      • Définissez la variable suffix à domain ou ca, 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.
  5. Dans la section tasks du fichier add-topologysegments-copy.yml, assurez-vous que la variable state 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([]) }}"
  6. Enregistrer le fichier.
  7. 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