8.6. Assurer la présence de plusieurs enregistrements CNAME dans IdM en utilisant Ansible
Un enregistrement de nom canonique (enregistrement CNAME) est un type d'enregistrement de ressources dans le système de noms de domaine (DNS) qui fait correspondre un nom de domaine, un alias, à un autre nom, le nom canonique.
Les enregistrements CNAME peuvent s'avérer utiles lorsque plusieurs services sont exécutés à partir d'une même adresse IP : par exemple, un service FTP et un service web, chacun fonctionnant sur un port différent.
Cette section montre comment un administrateur de gestion des identités (IdM) peut utiliser un playbook Ansible pour s'assurer que plusieurs enregistrements CNAME sont présents dans le DNS IdM. Dans l'exemple utilisé dans la procédure ci-dessous, host03 est à la fois un serveur HTTP et un serveur FTP. L'administrateur IdM s'assure de la présence des enregistrements CNAME www et ftp pour l'enregistrement A host03 dans la zone 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.
- L'enregistrement A de host03 existe dans la zone idm.example.com.
Procédure
Naviguez jusqu'au répertoire
/usr/share/doc/ansible-freeipa/playbooks/dnsrecord
:$ cd /usr/share/doc/ansible-freeipa/playbooks/dnsrecord
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 ensure-CNAME-record-is-present.yml Ansible playbook. Par exemple :
$ cp ensure-CNAME-record-is-present.yml ensure-CNAME-record-is-present-copy.yml
- Ouvrez le fichier ensure-CNAME-record-is-present-copy.yml pour le modifier.
Adaptez le fichier en définissant les variables suivantes dans la section
ipadnsrecord
task :-
(Facultatif) Adaptez la description de la pièce fournie par le site
name
. -
Définissez la variable
ipaadmin_password
avec votre mot de passe d'administrateur IdM. -
Fixer la variable
zone_name
à idm.example.com. Dans la section des variables de
records
, définissez les variables et valeurs suivantes :-
Fixer la variable
name
à www. -
Fixer la variable
cname_hostname
à host03. -
Fixer la variable
name
à ftp. -
Fixer la variable
cname_hostname
à host03.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
-
Fixer la variable
--- - name: Ensure that 'www.idm.example.com' and 'ftp.idm.example.com' CNAME records point to 'host03.idm.example.com'. hosts: ipaserver become: true gather_facts: false tasks: - ipadnsrecord: ipaadmin_password: "{{ ipaadmin_password }}" zone_name: idm.example.com records: - name: www cname_hostname: host03 - name: ftp cname_hostname: host03
-
(Facultatif) Adaptez la description de la pièce fournie par le site
- Enregistrer le fichier.
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-CNAME-record-is-present.yml
Ressources supplémentaires
-
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
.