24.3. Utiliser Ansible pour s'assurer qu'une condition spécifiée est présente dans une règle de membre automatique d'un groupe d'utilisateurs IdM
La procédure suivante décrit comment utiliser un playbook Ansible pour s'assurer qu'une condition spécifiée existe dans une règle automember
pour un groupe de gestion des identités (IdM). Dans l'exemple, la présence d'une condition liée à l'UID dans la règle automember
est assurée pour le groupe testing_group. En spécifiant la condition .*, vous vous assurez que tous les futurs utilisateurs IdM deviennent automatiquement membres du groupe testing_group.
Conditions préalables
-
Vous connaissez le mot de passe de l'IdM
admin
. - Le groupe d'utilisateurs testing_group et la règle du groupe d'utilisateurs 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/
et nommez-le, par exemple, automember-usergroup-rule-present.yml:$ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-hostgroup-rule-present.yml automember-usergroup-rule-present.yml
-
Ouvrez le fichier
automember-usergroup-rule-present.yml
pour le modifier. Adapter le fichier en modifiant les paramètres suivants :
- Renommez le playbook pour qu'il corresponde à votre cas d'utilisation, par exemple : Automember user group rule member present.
- Renommez la tâche pour qu'elle corresponde à votre cas d'utilisation, par exemple : Ensure an automember condition for a user group is present.
Définissez les variables suivantes dans la section
ipaautomember
task :-
Fixer la variable
ipaadmin_password
au mot de passe de l'IdMadmin
. -
Fixer la variable
name
à testing_group. -
Fixer la variable
automember_type
àgroup
. -
Assurez-vous que la variable
state
est définie surpresent
. -
Assurez-vous que la variable
action
est définie surmember
. -
Fixez la variable
inclusive
key
àUID
. -
Fixer la variable
inclusive
expression
à .*
-
Fixer la variable
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: testing_group automember_type: group state: present action: member inclusive: - key: UID expression: .*
- 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-usergroup-rule-present.yml
Verification steps
Se connecter en tant qu'administrateur IdM.
$ kinit admin
Ajouter un utilisateur, par exemple :
$ ipa user-add user101 --first user --last 101 ----------------------- Added user "user101" ----------------------- User login: user101 First name: user Last name: 101 ... Member of groups: ipausers, testing_group ...
Ressources supplémentaires
- Voir Application des règles automember aux entrées existantes à l'aide de l'interface CLI de l'IdM.
- Voir Avantages de l'adhésion automatique à un groupe et Règles Automember.
-
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
.