8.3. Assurer la présence des enregistrements DNS A et AAAA dans l'IdM en utilisant Ansible

Cette section montre comment un administrateur de gestion des identités (IdM) peut utiliser un playbook Ansible pour s'assurer que les enregistrements A et AAAA d'un hôte IdM particulier sont présents. Dans l'exemple utilisé dans la procédure ci-dessous, un administrateur IdM s'assure de la présence d'enregistrements A et AAAA pour host1 dans la zone DNS idm.example.com.

Conditions préalables

  • 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.
  • Vous connaissez le mot de passe de l'administrateur IdM.
  • La zone idm.example.com existe et est gérée par IdM DNS. Pour plus d'informations sur l'ajout d'une zone DNS primaire dans IdM DNS, voir Utilisation des playbooks Ansible pour gérer les zones IdM DNS.

Procédure

  1. Naviguez jusqu'au répertoire /usr/share/doc/ansible-freeipa/playbooks/dnsrecord:

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
  2. Ouvrez votre fichier d'inventaire et assurez-vous que le serveur IdM que vous souhaitez configurer est répertorié dans la section [ipaserver]. Par exemple, pour demander à Ansible de configurer server.idm.example.com, entrez :

    [ipaserver]
    server.idm.example.com
  3. Faites une copie du fichier ensure-A-and-AAAA-records-are-present.yml Ansible playbook. Par exemple :

    $ cp ensure-A-and-AAAA-records-are-present.yml ensure-A-and-AAAA-records-are-present-copy.yml
  4. Ouvrez le fichier ensure-A-and-AAAA-records-are-present-copy.yml pour le modifier.
  5. Adaptez le fichier en définissant les variables suivantes dans la section ipadnsrecord task :

    • Définissez la variable ipaadmin_password avec votre mot de passe d'administrateur IdM.
    • Fixer la variable zone_name à idm.example.com.
    • Dans la variable records, fixez la variable name à host1, et la variable a_ip_address à 192.168.122.123.
    • Dans la variable records, fixez la variable name à host1, et la variable aaaa_ip_address à ::1.

      Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :

    ---
    - name: Ensure A and AAAA records are present
      hosts: ipaserver
      become: true
      gather_facts: false
    
      tasks:
      # Ensure A and AAAA records are present
      - name: Ensure that 'host1' has A and AAAA records.
        ipadnsrecord:
          ipaadmin_password: "{{ ipaadmin_password }}"
          zone_name: idm.example.com
          records:
          - name: host1
            a_ip_address: 192.168.122.123
          - name: host1
            aaaa_ip_address: ::1
  6. Enregistrer le fichier.
  7. Exécutez le manuel de jeu :

    $ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-A-and-AAAA-records-are-present-copy.yml

Ressources supplémentaires

  • Voir les enregistrements DNS dans IdM.
  • Voir le fichier README-dnsrecord.md dans le répertoire /usr/share/doc/ansible-freeipa/.
  • Voir les exemples de playbooks Ansible dans le répertoire /usr/share/doc/ansible-freeipa/playbooks/dnsrecord.