--- # ============================================================================= # tasks/absent.yml — Suppression du fact (state=absent) # ============================================================================= - name: "Absent | Vérifier si le fact existe" ansible.builtin.stat: path: "{{ remote_users_fact_dir }}/{{ remote_users_fact_name }}" register: _remote_users_fact_file - name: "Absent | Supprimer le script remote_users.fact" ansible.builtin.file: path: "{{ remote_users_fact_dir }}/{{ remote_users_fact_name }}" state: absent register: _remote_users_fact_removed when: _remote_users_fact_file.stat.exists notify: Recharger les local facts - name: "Absent | Recharger les facts pour purger ansible_local" ansible.builtin.setup: filter: ansible_local when: _remote_users_fact_removed.changed | default(false) - name: "Absent | Vérifier que le fact n'est plus chargé" ansible.builtin.assert: that: - ansible_local.remote_users is not defined fail_msg: >- Le fact remote_users est toujours présent dans ansible_local après suppression. Vérifier le rechargement des facts. success_msg: "Fact remote_users correctement supprimé et purgé d'ansible_local" when: _remote_users_fact_removed.changed | default(false) - name: "Absent | Info suppression" ansible.builtin.debug: msg: >- {{ 'Fact supprimé de ' ~ remote_users_fact_dir if _remote_users_fact_removed.changed | default(false) else 'Fact déjà absent, rien à faire' }} - name: "Absent | Nettoyer le répertoire facts.d si vide" ansible.builtin.command: cmd: "find {{ remote_users_fact_dir }} -maxdepth 0 -empty -type d" register: _remote_users_factdir_empty changed_when: false failed_when: false - name: "Absent | Supprimer le répertoire facts.d si vide" ansible.builtin.file: path: "{{ remote_users_fact_dir }}" state: absent when: _remote_users_factdir_empty.stdout | length > 0