ファイル全体を読み取り、コンテンツを変数に保存する[ファイルルックアップ]を使用しています。私のプレイは次のようになります。
- name: Store foo.xml contents in a variable
set_fact:
foo_content: "{{ lookup('file', 'foo.xml' ) | replace('\n', '')}}"
したがって、上記のコードはfoo.xml
ファイルを読み取って変数に保存しますが、問題はfoo.xml
に改行がある場合、変数に改行も含まれることです。
私のfoo.xml
はこのファイルです:
<?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>
出力は改行\ nを削除しますが、タブ\ r&\ tも含みます
私は\n
を取り除く必要があり、余分な書式設定も取り除く必要があります(\ r&\ t)。さらに、フィルターを置換した後、
stderr: /bin/sh: 1: cannot open ?xml: No such file
replace
filter ?でそれを行うことができます。
contents: "{{ lookup('file', '/etc/foo.txt') | replace('\n', '')}}"
Jinja trim フィルターを使用します。
"{{ lookup('file', 'foo.xml' ) | trim }}"