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.
Commenter
Articles de blogs que je lis
40 ans de GNU
40 ans de GNU Richard Stallman ne voulait pas changer le monde. Il ne voulait pas se battre contre les moulins à vent. Il ne voulait pas réinventer la roue. Richard Stallman voulait simplement retrouver ses amis, sa communauté. Pour ce jeune homme barbu et …
– Ploum.net · 27 Sep 2023
La blogchain
Avec les réseaux sociaux, les petits espaces personnels interconnectés qu’étaient les blogs ont peu à peu disparu du paysage. Il en reste, mais les liens ne sont plus aussi forts. À la grande époque il était fréquent d’avoir des blogroll. sur un coin de c…
– Carnet de notes · 8 Sep 2023
#63 : Comment parler du vivant pour mieux l’appréhender
Baptiste Morizot est philosophe, maître de conférences à Aix-Marseille Université et auteur de plusieurs ouvrages sur les relations entre l'humain et le reste du vivant (Les Diplomates, Sur la piste animale, Manières d'être vivant…). En avril dern…
– Nourritures terrestres · 13 Aug 2023