18.4. Imbrication des groupes d'hôtes IdM à l'aide des playbooks Ansible
Cette section décrit comment assurer la présence de groupes d'hôtes imbriqués dans les groupes d'hôtes de 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 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 les groupes d'hôtes. Pour s'assurer qu'un groupe d'hôtes imbriqué A existe dans un groupe d'hôtes B: dans le manuel de jeu Ansible, spécifiez, parmi les variables
- ipahostgroup
, le nom du groupe d'hôtes B à l'aide de la variablename
. Spécifiez le nom du groupe d'hôtes imbriqué A avec la variablehostgroup
. Pour simplifier cette étape, vous pouvez copier et modifier les exemples dans le fichier/usr/share/doc/ansible-freeipa/playbooks/hostgroup/ensure-hosts-and-hostgroups-are-present-in-hostgroup.yml
:--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure hosts and hostgroups are present in existing databases hostgroup - ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases hostgroup: - mysql-server - oracle-server action: member
Ce playbook Ansible assure la présence des groupes d'hôtes myqsl-server et oracle-server dans le groupe d'hôtes databases. La ligne
action: member
indique que lorsque le playbook est exécuté, aucune tentative n'est faite pour ajouter le groupe databases lui-même à l'IdM.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-present-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 dans lequel se trouvent des groupes d'hôtes imbriqués :
$ ipa hostgroup-show databases Host-group: databases Member hosts: db.idm.example.com Member host-groups: mysql-server, oracle-server
Les groupes d'hôtes mysql-server et oracle-server existent dans le groupe d'hôtes databases.