13.4. Utiliser Ansible pour renommer un privilège IdM RBAC personnalisé
En tant qu'administrateur système de la gestion des identités (IdM), vous pouvez personnaliser le contrôle d'accès basé sur les rôles de l'IdM.
La procédure suivante décrit comment renommer un privilège parce que, par exemple, vous lui avez retiré quelques autorisations. Par conséquent, le nom du privilège n'est plus exact. Dans l'exemple, l'administrateur renomme un privilège full_host_administration en limited_host_administration.
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
.
- Le privilège full_host_administration existe. Pour plus d'informations sur l'ajout d'un privilège, voir Utilisation d'Ansible pour s'assurer qu'un privilège IdM RBAC personnalisé est présent.
Procédure
Naviguez jusqu'au répertoire ~/MyPlaybooks/ répertoire :
$ cd ~/MyPlaybooks/
Faites une copie du fichier
privilege-present.yml
situé dans le répertoire/usr/share/doc/ansible-freeipa/playbooks/privilege/
:$ cp /usr/share/doc/ansible-freeipa/playbooks/privilege/privilege-present.yml rename-privilege.yml
-
Ouvrez le fichier
rename-privilege.yml
Ansible playbook pour l'éditer. Adaptez le fichier en définissant les variables suivantes dans la section
ipaprivilege
task :-
Définissez la variable
ipaadmin_password
avec le mot de passe de l'administrateur IdM. -
Définir la variable
name
avec le nom actuel du privilège. -
Ajoutez la variable
rename
et attribuez-lui le nouveau nom du privilège. -
Ajoutez la variable
state
et fixez-la àrenamed
.
-
Définissez la variable
Renommer le playbook lui-même, par exemple :
--- - name: Rename a privilege hosts: ipaserver
Renommez la tâche dans le playbook, par exemple :
[...] tasks: - name: Ensure the full_host_administration privilege is renamed to limited_host_administration ipaprivilege: [...]
Il s'agit du fichier playbook Ansible modifié pour l'exemple actuel :
--- - name: Rename a privilege hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure the full_host_administration privilege is renamed to limited_host_administration ipaprivilege: ipaadmin_password: "{{ ipaadmin_password }}" name: full_host_administration rename: limited_host_administration state: renamed
- 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 rename-privilege.yml