3.5. Utilisation d'un playbook Ansible pour s'assurer de la présence d'une zone pour la recherche DNS inversée lorsqu'une adresse IP est donnée

Cette section montre comment un administrateur Identity Management (IdM) peut utiliser un playbook Ansible pour s'assurer de l'existence d'une zone DNS inversée. Dans l'exemple utilisé dans la procédure ci-dessous, un administrateur IdM s'assure de la présence d'une zone de recherche DNS inverse en utilisant l'adresse IP et la longueur du préfixe d'un hôte IdM.

En indiquant la longueur du préfixe de l'adresse IP de votre serveur DNS à l'aide de la variable name_from_ip, vous pouvez contrôler le nom de la zone. Si vous n'indiquez pas la longueur du préfixe, le système interroge les serveurs DNS sur les zones et, en fonction de la valeur name_from_ip de 192.168.1.2, la requête peut renvoyer n'importe laquelle des zones DNS suivantes :

  • 1.168.192.in-addr.arpa.
  • 168.192.in-addr.arpa.
  • 192.in-addr.arpa.

Étant donné que la zone renvoyée par la requête peut ne pas correspondre à ce que vous attendez, name_from_ip ne peut être utilisé qu'avec l'option state réglée sur present afin d'éviter les suppressions accidentelles de zones.

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.

Procédure

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

    $ cd /usr/share/doc/ansible-freeipa/playbooks/dnszone
  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 dnszone-reverse-from-ip.yml Ansible playbook. Par exemple :

    $ cp dnszone-reverse-from-ip.yml dnszone-reverse-from-ip-copy.yml
  4. Ouvrez le fichier dnszone-reverse-from-ip-copy.yml pour le modifier.
  5. Adaptez le fichier en définissant les variables suivantes dans la section ipadnszone task :

    • Définissez la variable ipaadmin_password avec votre mot de passe d'administrateur IdM.
    • Définissez la variable name_from_ip avec l'IP de votre serveur de noms IdM et indiquez la longueur de son préfixe.

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

      ---
      - name: Ensure dnszone present
        hosts: ipaserver
        become: true
      
        tasks:
        - name: Ensure zone for reverse DNS lookup is present.
          ipadnszone:
            ipaadmin_password: "{{ ipaadmin_password }}"
            name_from_ip: 192.168.1.2/24
            state: present
          register: result
        - name: Display inferred zone name.
          debug:
            msg: "Zone name: {{ result.dnszone.name }}"

    Le playbook crée une zone pour la recherche DNS inversée à partir de l'adresse IP 192.168.1.2 et de sa longueur de préfixe de 24. Ensuite, le playbook affiche le nom de la zone résultante.

  6. Enregistrer le fichier.
  7. Exécutez le manuel de jeu :

    $ ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-reverse-from-ip-copy.yml

Ressources supplémentaires

  • Voir Types de zones DNS pris en charge.
  • Voir le fichier README-dnszone.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/dnszone.