Supprimer les fichiers inutilisés d'un dossier avec Ansible 2021-07-15 | Blog de Nicolas Karolak

Un inconvénient qu’on rencontre parfois avec Ansible, c’est que quand on a déployé des fichiers dans un dossier avec les modules template ou file, si on change la liste ou le nom des fichiers déployés, les anciens ne sont pas supprimés. C’est une action à ajouter dans une nouvelle tâche ou à faire manuellement, mais dans ce dernier cas on perd tout l’intérêt d’Ansible.

Ce n’est pas forcément trivial à faire, voilà donc un petit mémo d’une solution possible à ce problème :

- name: "récupération de la liste des fichiers existants"
  register: "ssh_configs_found"
  find:
    paths: "~/.ssh/config.d"
    patterns: "*.ssh"

- name: "création des variables intermédiaires"
  vars:
    ssh_wanted_fullpath: "{{ lookup('fileglob', '../templates/ssh_config/*.j2', wantlist=True) }}"
    ssh_found_fullpath: "{{ ssh_configs_found | json_query('files[*].path') }}"
  set_fact:
    ssh_wanted: "{{ ssh_wanted_fullpath |  map('basename') | map('regex_replace', '\\.j2$', '') }}"
    ssh_found: "{{ ssh_found_fullpath | map('basename') }}"

- name: "suppression des fichiers obsolètes"
  loop: "{{ ssh_found | difference(ssh_wanted) }}"
  file:
    path: "~/.ssh/config.d/{{ item }}"
    state: "absent"

- name: "copie des fichiers de configuration"
  loop: "{{ ssh_wanted }}"
  template:
    src: "ssh_config/{{ item }}.j2"
    dest: "~/.ssh/config.d/{{ item }}"
    mode: 0640

En gros, on liste les fichiers existants dans le dossier de destination, on en extrait la différence d’avec la liste des fichiers qu’on souhaite être présents, et on supprime cette différence.


Un commentaire ? Démarrez une discussion dans la liste de diffusion en envoyant un email à ~nka/blog@lists.sr.ht. Veuillez respecter l'etiquette de la liste de diffusion.

Articles de blogs que je lis Généré par openring

Status update, July 2021

Hallo uit Nederland! I’m writing to you from a temporary workstation in Amsterdam, pending the installation of a better one that I’ll put together after I visit a furniture store today. I’ve had to slow a few things down somewhat while I prepare for this mov…

via Drew DeVault's blog 2021-07-15

Aquabikepacking à travers la Wallonie

Récit de 3 jours de bikepacking pas toujours entre les gouttes à travers le Hainaut, le nord de la France et le Namurois Je tiens ma formation initiale et ma philosophie du bikepacking de Thierry Crouzet, auteur du livre « Une initiation au bikepacking » …

via ploum.net 2021-07-14

#39 : Le cri d’alarme de l’hydrologue Emma Haziza

Emma Haziza est hydrologue, spécialiste de la résilience des territoires face aux risques climatiques extrêmes. Elle est intervenue cette semaine lors d’une conférence organisée par Eau de Paris, dans le cadre d’une série de conférences qui interrogent le…

via Nourritures terrestres 2021-06-27