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
Naviguez jusqu'au répertoire
/usr/share/doc/ansible-freeipa/playbooks/dnszone
:$ cd /usr/share/doc/ansible-freeipa/playbooks/dnszone
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
Faites une copie du fichier dnszone-all-params.yml Ansible playbook. Par exemple :
$ cp dnszone-all-params.yml dnszone-all-params-copy.yml
- Ouvrez le fichier dnszone-all-params-copy.yml pour le modifier.
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
, etdefault_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
-
Définissez la variable
- Enregistrer le fichier.
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
- Voir Types de zones DNS pris en charge.
- Voir Attributs de configuration des zones DNS primaires de l'IdM.
-
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
.