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

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

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.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s