43.6. Garantir l'absence d'hôtes dans les groupes d'hôtes IdM à l'aide des playbooks Ansible
Cette section décrit comment garantir l'absence d'hôtes dans les groupes d'hôtes de la gestion des identités (IdM) à l'aide des playbooks Ansible.
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
.
- Les hôtes que vous souhaitez référencer dans votre livre de programmation Ansible existent dans IdM. Pour plus de détails, voir Assurer la présence d'une entrée d'hôte IdM à l'aide des carnets de commande Ansible.
- Les groupes d'hôtes auxquels vous faites référence dans le fichier du livre de jeu Ansible existent dans IdM. Pour plus de détails, voir Assurer la présence des groupes d'hôtes IdM à l'aide des playbooks Ansible.
Procédure
Créez un fichier d'inventaire, par exemple
inventory.file
, et définissez-yipaserver
avec la liste des serveurs IdM à cibler :[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur l'hôte et le groupe d'hôtes. Spécifiez le nom du groupe d'hôtes en utilisant le paramètre
name
de la variableipahostgroup
. Spécifiez le nom de l'hôte dont vous voulez garantir l'absence dans le groupe d'hôtes en utilisant le paramètrehost
de la variableipahostgroup
. Pour simplifier cette étape, vous pouvez copier et modifier les exemples du fichier/usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-absent-in-hostgroup.yml
:--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure host-group databases is absent - ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases host: - db.idm.example.com action: member state: absent
Ce livre de jeu garantit l'absence de l'hôte db.idm.example.com du groupe d'hôtes databases. La ligne action: member indique que lors de l'exécution du livre de jeu, aucune tentative n'est faite pour supprimer le groupe databases lui-même.
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-hosts-or-hostgroups-are-absent-in-hostgroup.yml
Verification steps
Connectez-vous à
ipaserver
en tant qu'administrateur :$ ssh admin@server.idm.example.com Password: [admin@server /]$
Demander un ticket Kerberos pour l'administrateur :
$ kinit admin Password for admin@IDM.EXAMPLE.COM:
Affiche des informations sur le groupe d'hôtes et les hôtes qu'il contient :
$ ipa hostgroup-show databases Host-group: databases Member host-groups: mysql-server, oracle-server
L'hôte db.idm.example.com n'existe pas dans le groupe d'hôtes databases.