3.4. Utilisation d'un playbook Ansible pour assurer la présence d'une zone DNS primaire dans l'IdM avec plusieurs variables

Cette section montre comment un administrateur Identity Management (IdM) peut utiliser un playbook Ansible pour s'assurer de l'existence d'une zone DNS primaire. Dans l'exemple utilisé dans la procédure ci-dessous, un administrateur IdM s'assure de la présence de la zone DNS zone.idm.example.com. Le playbook Ansible configure plusieurs paramètres de la zone.

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-all-params.yml Ansible playbook. Par exemple :

    $ cp dnszone-all-params.yml dnszone-all-params-copy.yml
  4. Ouvrez le fichier dnszone-all-params-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.
    • Fixer la variable zone_name à zone.idm.example.com.
    • Attribuez la valeur true à la variable allow_sync_ptr si vous souhaitez autoriser la synchronisation des enregistrements en aval et en amont, c'est-à-dire la synchronisation des enregistrements A et AAAA avec les enregistrements PTR.
    • Définissez la variable dynamic_update sur true pour permettre aux machines clientes IdM d'ajouter ou de mettre à jour leurs adresses IP.
    • Attribuez la valeur true à la variable dnssec pour permettre la signature DNSSEC en ligne des enregistrements dans la zone.
    • Définissez la variable allow_transfer avec les adresses IP des serveurs de noms secondaires de la zone.
    • Définissez la variable allow_query en fonction des adresses IP ou des réseaux autorisés à émettre des requêtes.
    • Définissez la variable forwarders avec les adresses IP des transitaires globaux.
    • Attribuer à la variable serial le numéro de série de l'enregistrement SOA.
    • Définissez les valeurs refresh, retry, expire, minimum, ttl, et default_ttl pour les enregistrements DNS de la zone.
    • Définir l'enregistrement NSEC3PARAM pour la zone en utilisant la variable nsec3param_rec.
    • Définissez la variable skip_overlap_check sur true pour forcer la création d'un DNS même s'il chevauche une zone existante.
    • Attribuez la valeur true à skip_nameserver_check pour forcer la création d'une zone DNS même si le serveur de noms n'est pas résolvable.

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

    ---
    - name: Ensure dnszone present
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure zone is present.
        ipadnszone:
          ipaadmin_password: "{{ ipaadmin_password }}"
          zone_name: zone.idm.example.com
          allow_sync_ptr: true
          dynamic_update: true
          dnssec: true
          allow_transfer:
            - 1.1.1.1
            - 2.2.2.2
          allow_query:
            - 1.1.1.1
            - 2.2.2.2
          forwarders:
            - ip_address: 8.8.8.8
            - ip_address: 8.8.4.4
              port: 52
          serial: 1234
          refresh: 3600
          retry: 900
          expire: 1209600
          minimum: 3600
          ttl: 60
          default_ttl: 90
          name_server: server.idm.example.com.
          admin_email: admin.admin@idm.example.com
          nsec3param_rec: "1 7 100 0123456789abcdef"
          skip_overlap_check: true
          skip_nameserver_check: true
          state: present
  6. Enregistrer le fichier.
  7. Exécutez le manuel de jeu :

    $ ansible-playbook --vault-password-file=password_file -v -i inventory.file dnszone-all-params-copy.yml

Ressources supplémentaires