[Ansible] : Find lister des fichiers et réaliser une action dessus

Print Friendly, PDF & Email

Ansible est nouveau pour moi donc vous devriez trouver dans les prochains jours pas mal de tips pour réaliser de petites actions avec ansible.

Aujourd’hui je cherche à lister les fichier d’un répertoire et à réaliser dessus une action. Dans mon cas je vais créer des liens symboliques pour faire en sorte que les binaires oracle soient directement accessible via /usr/bin (dans le path des users). On aurait aussi pu supprimer des fichiers ou autres.

tasks:
  - name: Liste les binaires oracle
    find:
      paths: /usr/lib/oracle/12.2/client64/bin/
    register: result
  - name: Création des liens symboliques
    file:
      src: "{{ item.path }}" 
      dest: /usr/bin/{{ item.path | basename }}
      state: link
    with_items: "{{ result.files }}" 

On met donc la liste des fichiers dans la variable “result”. Il s’agit d’un tableau. Si vous voulez aller plus loin vous pouvez vous référer à la doc sur le module find pour utiliser d’autres éléments du tableau.

Ensuite, on parcourt chaque file avec le with_items. On utilise alors item.path pour récupérer le chemin en dur. Pour la destination on lui applique la commande basename pour récupérer uniquement le nom de fichier.

Au passage j’ai découvert un blog ansible sympa… mais peut être un peu court.

Découvrez  [Ansible] : lister les variables de rôles non documentées dans le README.md