Ajouter proxmox_delete_user.yml
This commit is contained in:
parent
ab3ef80c83
commit
0a9cce6668
|
|
@ -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)."
|
||||
|
||||
Loading…
Reference in New Issue