11.3. Utiliser Ansible pour s'assurer qu'une règle de délégation est présente
La procédure suivante décrit comment utiliser un playbook Ansible pour définir les privilèges d'une nouvelle règle de délégation IdM et assurer sa présence. Dans l'exemple, la nouvelle règle de délégation basic manager attributes accorde au groupe managers
la possibilité de lire et d'écrire les attributs suivants pour les membres du groupe employees
:
-
businesscategory
-
departmentnumber
-
employeenumber
-
employeetype
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
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
delegation-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/delegation/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/delegation/delegation-present.yml delegation-present-copy.yml
-
Ouvrez le fichier
delegation-present-copy.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipadelegation
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Attribuez à la variable
name
le nom de la nouvelle règle de délégation. -
Attribuez à la variable
permission
une liste de permissions à accorder, séparées par des virgules :read
etwrite
. -
Définissez la variable
attribute
avec une liste d'attributs que le groupe d'utilisateurs délégué peut gérer :businesscategory
,departmentnumber
,employeenumber
, etemployeetype
. -
Définissez la variable
group
avec le nom du groupe auquel on donne accès à la visualisation ou à la modification des attributs. -
Définissez la variable
membergroup
avec le nom du groupe dont les attributs peuvent être visualisés ou modifiés.
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Playbook to manage a delegation rule hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure delegation "basic manager attributes" is present ipadelegation: ipaadmin_password: "{{ ipaadmin_password }}" name: "basic manager attributes" permission: read, write attribute: - businesscategory - departmentnumber - employeenumber - employeetype group: managers membergroup: employees
-
Définissez 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 ~/MyPlaybooks/inventory delegation-present-copy.yml
Ressources supplémentaires
- Voir règles de délégation.
-
Voir le fichier
README-delegation.md
dans le répertoire/usr/share/doc/ansible-freeipa/
. -
Voir les exemples de playbooks dans le répertoire
/usr/share/doc/ansible-freeipa/playbooks/ipadelegation
.