Ansible : remplacement récursif de texte

De Justine's wiki
Aller à la navigation Aller à la recherche

Exemple

Il faut récupérer les fichiers, puis utiliser leurs chemins pour faire du replace.

Exemple :

<syntaxhighlight lang="yaml">

--- - hosts: all

 become: true
 tasks:
   - name: Récupérer les fichiers
     find:
       patterns: "config"
       paths: /var/log
       recurse: yes
     register: fichiers
   - name: debuggage
     debug:
       msg: "Modèle:Item.path"
     with_items: "Modèle:Fichiers.files"
   - name: remplacement du texte
     replace:
       dest: "Modèle:Item.path"
       regexp: 'Modèle:Anneeavant'
       replace: 'Modèle:Anneeapres'
     with_items: "Modèle:Fichiers.files"

</syntaxhighlight>

Ici, je remplace anneavant par anneeapres. Le bloc de debug n'est là que pour faire de l'affichage.

Le module find renvoie un dictionnaire, lequel contient un sous ensemble files, lequel contient entre autre le path de chaque fichier. C'est pour ça que je fais un with_items : fichiers.files et que j'agit ensuite sur item.path. Quelle galère !