Ajouter proxmox_delete_user.yml

This commit is contained in:
l.covela 2025-11-21 15:32:19 +01:00
parent ab3ef80c83
commit 0a9cce6668
1 changed files with 71 additions and 0 deletions

71
proxmox_delete_user.yml Normal file
View File

@ -0,0 +1,71 @@
---
- name: Supprimer un utilisateur Proxmox
hosts: Proxmox
gather_facts: false
become: true
become_user: root
vars:
del_realm: "{{ del_realm | default('pve') }}"
userid: "{{ del_user }}@{{ del_realm }}"
tasks:
- name: Vérifier que les variables sont renseignées
assert:
that:
- del_user is defined and del_user | length > 0
fail_msg: "del_user doit être fourni via Semaphore."
# --- Récupération des users ---
- name: Liste des utilisateurs Proxmox (JSON)
command: pvesh get /access/users --output-format json
register: users_json
changed_when: false
- name: Parser liste des users
set_fact:
users_list: "{{ (users_json.stdout | default('[]')) | from_json }}"
- name: Vérifier si l'utilisateur existe
set_fact:
user_exists: "{{ users_list | selectattr('userid','equalto', userid) | list | length > 0 }}"
- name: Afficher statut
debug:
msg: "Utilisateur {{ userid }} existe = {{ user_exists }}"
# --- Supprimer ACL ---
- name: Récupérer les ACL existantes
command: pvesh get /access/acl --output-format json
register: acl_json
changed_when: false
- name: Parser ACL
set_fact:
acl_list: "{{ (acl_json.stdout | default('[]')) | from_json }}"
- name: Supprimer toutes les ACL associées à l'utilisateur
shell: >
pveum acl delete {{ item.path }} -user {{ userid | quote }}
loop: "{{ acl_list }}"
when: item.ugid == userid
no_log: true
# --- Supprimer dans Proxmox ---
- name: Supprimer l'utilisateur dans Proxmox
shell: pveum user delete {{ userid | quote }}
when: user_exists
no_log: true
# --- Supprimer utilisateur Linux si PAM ---
- name: Supprimer l'utilisateur Linux si realm = pam
user:
name: "{{ del_user }}"
state: absent
remove: true
when: del_realm == 'pam'
- name: Résumé
debug:
msg: "Utilisateur {{ userid }} supprimé (ou déjà inexistant)."