Ansible : comment supprimer des fichiers et dossiers dans un répertoire ?

Ansible est une plateforme logicielle permettant de configurer et de gérer une flotte de serveurs dans des entreprises ou des organisations. On peut notamment créer des scripts qui vont interagir avec votre système d'exploitation et automatiser des tâches. Si vous souhaitez supprimer le contenu d'un répertoire, il existe différents procédés, selon votre souhait de conserver ou non le répertoire.

Si vous souhaitez supprimer un répertoire avec l'intégralité de son contenu, il est possible de le faire facilement avec des commandes Ansible. Il suffit d'indiquer l'état "absent" en donnant également le chemin vers le répertoire. Le répertoire et tout son contenu seront alors supprimés.

- name: Supprimer répertoire et contenu
  file:
    state: absent
    path: "{{ chemin vers le répertoire }}/"

Si vous souhaitez supprimer le contenu d'un répertoire mais le conserver et que vous ne vous souciez pas de la date de création, l'opération la plus simple consiste à supprimer puis recréer le répertoire. Il suffit pour cela d'utiliser l'opération précédente, puis de rajouter une opération qui change l'état du répertoire "directory". Le répertoire sera alors recréé. Il est possible de raccourcir la notation de l'opération si l'on choisit de ne pas lui donner de nom.

- file: path=/chemin/vers/le/repertoire state=absent
- file: path=/chemin/vers/le/repertoire state=directory

Si vous souhaitez vider le répertoire de son contenu tout en le conservant alors il faut utiliser le terminal et les commandes du système. Avec l'opérateur "shell", vous pouvez indiquer une commande à lancer depuis le terminal. Il faut ensuite indiquer le chemin vers l'exécutable de la commande (ici il s'agit de la commande "rm") puis les arguments. Pour une suppression récursive de tout le contenu sans demander une autorisation, on utilise respectivement les arguments "r" et "f" puis le chemin vers le répertoire. On ajoute le caractère "*" précédé de "/" pour indiquer que l'on supprime le contenu du répertoire sans le supprimer lui-même.

- shell: /bin/rm -rf /chemin/vers/le/repertoire/*

Divers