Ответ 1
Вы можете сделать это с помощью фильтра replace
?
contents: "{{ lookup('file', '/etc/foo.txt') | replace('\n', '')}}"
Я использую [поиск файла], который читает весь файл и сохраняет содержимое в переменной. Моя игра выглядит примерно так:
- 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
?
contents: "{{ lookup('file', '/etc/foo.txt') | replace('\n', '')}}"
Используйте фильтр обрезки Jinja:
"{{ lookup('file', 'foo.xml' ) | trim }}"