Chapitre 40. Gérer les hôtes à l'aide des playbooks Ansible
Ansible est un outil d'automatisation utilisé pour configurer des systèmes, déployer des logiciels et effectuer des mises à jour continues. Ansible prend en charge la gestion des identités (IdM) et vous pouvez utiliser des modules Ansible pour automatiser la gestion des hôtes.
Ce chapitre décrit les concepts suivants et les opérations effectuées lors de la gestion des hôtes et des entrées d'hôtes à l'aide des playbooks Ansible :
-
Assurer la présence d'entrées d'hôtes IdM qui ne sont définies que par leur
FQDNs
- S'assurer de la présence d'entrées d'hôtes IdM avec des adresses IP
- Assurer la présence de plusieurs entrées d'hôtes IdM avec des mots de passe aléatoires
- Assurer la présence d'une entrée d'hôte IdM avec plusieurs adresses IP
- Garantir l'absence d'entrées d'hôtes IdM
40.1. S'assurer de la présence d'une entrée d'hôte IdM avec FQDN à l'aide des playbooks Ansible
Cette section décrit comment assurer la présence d'entrées d'hôtes dans la gestion des identités (IdM) à l'aide de playbooks Ansible. Les entrées d'hôte sont uniquement définies par leur fully-qualified domain names
(FQDN).
Il suffit de spécifier le nom FQDN
de l'hôte si au moins l'une des conditions suivantes s'applique :
- Le serveur IdM n'est pas configuré pour gérer les DNS.
-
L'hôte n'a pas d'adresse IP statique ou l'adresse IP n'est pas connue au moment de la configuration de l'hôte. L'ajout d'un hôte défini uniquement par une adresse
FQDN
crée essentiellement une entrée de remplacement dans le service DNS IdM. Par exemple, des ordinateurs portables peuvent être préconfigurés comme clients IdM, mais ils n'ont pas d'adresse IP au moment de leur configuration. Lorsque le service DNS met à jour dynamiquement ses enregistrements, l'adresse IP actuelle de l'hôte est détectée et son enregistrement DNS est mis à jour.
Sans Ansible, les entrées d'hôtes sont créées dans IdM à l'aide de la commande ipa host-add
. Le résultat de l'ajout d'un hôte à IdM est l'état de l'hôte présent dans IdM. En raison de la dépendance d'Ansible à l'égard de l'idempotence, pour ajouter un hôte à IdM à l'aide d'Ansible, vous devez créer un playbook dans lequel vous définissez l'état de l'hôte comme étant présent : state: present.
Conditions préalables
- Vous connaissez le mot de passe de l'administrateur IdM.
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
.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
:[ipaserver] server.idm.example.com
Créez un fichier Ansible playbook avec le
FQDN
de l'hôte dont vous voulez assurer la présence dans IdM. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/playbooks/host/add-host.yml
:--- - name: Host present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Host host01.idm.example.com present ipahost: ipaadmin_password: "{{ ipaadmin_password }}" name: host01.idm.example.com state: present force: yes
Exécutez le manuel de jeu :
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-host-is-present.yml
La procédure aboutit à la création d'une entrée d'hôte dans le serveur LDAP IdM, mais pas à l'enrôlement de l'hôte dans le domaine Kerberos IdM. Pour cela, vous devez déployer l'hôte en tant que client IdM. Pour plus de détails, voir Installation d'un client de gestion d'identité à l'aide d'un playbook Ansible.
Verification steps
Connectez-vous à votre serveur IdM en tant qu'administrateur :
$ ssh admin@server.idm.example.com Password:
Entrez la commande
ipa host-show
et indiquez le nom de l'hôte :$ ipa host-show host01.idm.example.com Host name: host01.idm.example.com Principal name: host/host01.idm.example.com@IDM.EXAMPLE.COM Principal alias: host/host01.idm.example.com@IDM.EXAMPLE.COM Password: False Keytab: False Managed by: host01.idm.example.com
Le résultat confirme que host01.idm.example.com existe dans IdM.