J'utilise [recherche de fichier] qui lit le fichier entier et stocke le contenu dans une variable. Ma pièce ressemble à ceci:
- name: Store foo.xml contents in a variable
set_fact:
foo_content: "{{ lookup('file', 'foo.xml' ) | replace('\n', '')}}"
Ainsi, le code ci-dessus lit le foo.xml
fichier et le stocke dans la variable, mais le problème est lorsque le foo.xml
contient des sauts de ligne, il inclut également le saut de ligne dans la variable.
Ma foo.xml
est ce fichier:
<?xml version="1.0" encoding="utf-8"?>
<initialize_param>
<secrets>
<my_secret id="99">3VMjII6Hw+pd1zHV5THSI712y421USUS8124487128745812sajfhsakjfasbfvcasvnjasjkvbhasdfasgfsfaj5G8A9+n8CkLxk7Dqu0G8Jclg0eb1A5xeFzR3rrJHrb2GBBa7PJNVx8tFJP3AtF6ek/F/WvlBIs2Lex2fq+/bGryKlySuFmbcwBsThmPJC5Z5AwPJgGZx</my_secret>
</secrets>
</initialize_param>
La sortie supprime le saut de ligne\n mais inclut également les tabulations\r &\t
Je dois me débarrasser du \n
, il faut aussi se débarrasser du formatage supplémentaire (\ r &\t). De plus, après le filtre de remplacement, j'obtiens l'erreur lors du lancement d'une requête de mise à jour DB comme
stderr: /bin/sh: 1: cannot open ?xml: No such file
Vous pouvez le faire avec le filtre replace
?
contents: "{{ lookup('file', '/etc/foo.txt') | replace('\n', '')}}"
Utilisez le filtre Jinja trim :
"{{ lookup('file', 'foo.xml' ) | trim }}"