43.2. Assurer la présence 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 dans la gestion des identités (IdM) à l'aide des playbooks Ansible.
Sans Ansible, les entrées de groupes d'hôtes sont créées dans IdM à l'aide de la commande ipa hostgroup-add
. Le résultat de l'ajout d'un groupe d'hôtes à IdM est l'état du groupe d'hôtes présent dans IdM. En raison de la dépendance d'Ansible à l'égard de l'idempotence, pour ajouter un groupe d'hôtes à IdM à l'aide d'Ansible, vous devez créer un playbook dans lequel vous définissez l'état du groupe d'hôtes 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
avec la liste des serveurs IdM à cibler :[ipaserver] server.idm.example.com
Créez un fichier playbook Ansible avec les informations nécessaires sur le groupe d'hôtes. Par exemple, pour garantir la présence d'un groupe d'hôtes nommé databases, spécifiez
name: databases
dans la tâche- ipahostgroup
. Pour simplifier cette étape, vous pouvez copier et modifier l'exemple dans le fichier/usr/share/doc/ansible-freeipa/playbooks/user/ensure-hostgroup-is-present.yml
.--- - name: Playbook to handle hostgroups hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: # Ensure host-group databases is present - ipahostgroup: ipaadmin_password: "{{ ipaadmin_password }}" name: databases state: present
Dans le playbook, state: present signifie une demande d'ajout du groupe d'hôtes à IdM, à moins qu'il n'y existe déjà.
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-hostgroup-is-present.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:
Affichez les informations sur le groupe d'hôtes dont vous voulez assurer la présence dans l'IdM :
$ ipa hostgroup-show databases Host-group: databases
Le groupe d'hôtes databases existe dans IdM.