9.5. Utiliser Ansible pour s'assurer qu'une condition est présente dans une règle de membre automatique d'un groupe d'hôtes IdM
Cette section décrit comment utiliser Ansible pour s'assurer qu'une condition est présente dans une règle de membre automatique de groupe d'hôtes IdM. L'exemple décrit comment s'assurer que les hôtes dont le FQDN
est .*.idm.example.com sont membres du groupe d'hôtes primary_dns_domain_hosts et que les hôtes dont le FQDN
est .*.example.org ne sont pas membres du groupe d'hôtes primary_dns_domain_hosts.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. - Le groupe d'hôtes primary_dns_domain_hosts et la règle du groupe d'hôtes automember existent dans 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
Naviguez jusqu'à votre répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Copiez le fichier
automember-hostgroup-rule-present.yml
Ansible playbook situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/automember/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-hostgroup-rule-present.yml automember-hostgroup-rule-present-copy.yml
-
Ouvrez le fichier
automember-hostgroup-rule-present-copy.yml
pour le modifier. Adaptez le fichier en définissant les variables suivantes dans la section
ipaautomember
task :-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. -
Fixer la variable
name
à primary_dns_domain_hosts. -
Fixer la variable
automember_type
à hostgroup. -
Assurez-vous que la variable
state
est définie surpresent
. -
Assurez-vous que la variable
action
est définie surmember
. -
Assurez-vous que la variable
inclusive
key
est fixée àfqdn
. -
Définissez la variable
inclusive
expression
correspondante à .*.idm.example.com. -
Fixez la variable
exclusive
key
àfqdn
. -
Définissez la variable
exclusive
expression
correspondante à .*.example.org.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Automember user group rule member present hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure an automember condition for a user group is present ipaautomember: ipaadmin_password: "{{ ipaadmin_password }}" name: primary_dns_domain_hosts automember_type: hostgroup state: present action: member inclusive: - key: fqdn expression: .*.idm.example.com exclusive: - key: fqdn expression: .*.example.org
-
Fixer la variable
- Enregistrer le fichier.
Exécutez le playbook Ansible. Spécifiez le fichier du livre de jeu, le fichier contenant le mot de passe protégeant le fichier secret.yml et le fichier d'inventaire :
$ ansible-playbook --vault-password-file=password_file -v -i inventory automember-hostgroup-rule-present-copy.yml
Ressources supplémentaires
-
Voir le fichier
README-automember.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir le répertoire
/usr/share/doc/ansible-freeipa/playbooks/automember
.