win_template – Шаблонизирует файл на удалённом сервере
Новая версия с 1.9.2.
Обзор
- Шаблоны обрабатываются с помощью языка шаблонов Jinja2 (http://jinja.pocoo.org/docs/) — документацию по форматированию шаблонов можно найти в документации по дизайнерам шаблонов (http://jinja.pocoo.org/docs/templates/).
- В шаблонах можно использовать шесть дополнительных переменных:
ansible_managed(настраивается в разделеdefaultsansible.cfg) содержит строку, которая может быть использована для описания имени шаблона, хоста, времени модификации файла шаблона и идентификатора владельца;template_hostсодержит имя узла машины шаблона;template_uid— владельца;template_path— абсолютный путь к шаблону;template_fullpath— абсолютный путь к шаблону; иtemplate_run_date— дату рендеринга шаблона. Обратите внимание, что включение строки с датой в шаблон приведёт к тому, что шаблон будет помечен как изменённый каждый раз.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| block_end_string - добавлен в 2.4 | Значение по умолчанию: "%}" | Строка, обозначающая конец блока. |
| block_start_string - добавлен в 2.4 | Значение по умолчанию: "{%" | Строка, обозначающая начало блока. |
| dest - / обязательно | Место назначения для рендеринга шаблона на удалённой машине. | |
| force логическое значение добавлен в 2.4 |
| Если yes, заменит удалённый файл, если содержимое отличается от исходного.Если no, файл будет передан только в том случае, если он не существует в пункте назначения. |
| newline_sequence - добавлен в 2.4 |
| Укажите последовательность символов новой строки для шаблонизации файлов. |
| src - / обязательно | Путь к файлу шаблона Jinja2 на локальном сервере. Это может быть относительный или абсолютный путь. | |
| trim_blocks логическое значение добавлен в 2.4 |
| Если это yes, первая новая строка после блока будет удалена (блок, а не тег переменной!). |
| variable_end_string - добавлен в 2.4 | Значение по умолчанию: "}}" | Строка, обозначающая конец оператора печати. |
| variable_start_string - добавлен в 2.4 | Значение по умолчанию: "{{" | Строка, обозначающая начало оператора печати. |
Примечания
Примечание
- Для других платформ можно использовать шаблон, который использует «n» в качестве
newline_sequence. - Шаблоны загружаются с помощью
trim_blocks=True. - Будьте осторожны при получении файлов с машин Windows при создании шаблонов, так как некоторые инструменты, такие как Powershell ISE и утилита экспорта regedit, добавляют маркер порядка байтов в качестве первого символа файла, что может привести к ошибке.
- Чтобы найти маркеры порядка байтов в файлах, используйте
Format-Hex <file> -Count 16в Windows иod -a -t x1 -N 16 <file>в Linux. - Также вы можете переопределить настройки jinja2, добавив специальный заголовок в файл шаблона. Например,
#jinja2:variable_start_string:'[%', variable_end_string:'%]', trim_blocks: no, который изменяет маркеры интерполяции переменных на [% var %], вместо {{ var }}. Это лучший способ предотвратить оценку вещей, которые выглядят как, но не должны быть Jinja2. raw/endraw в Jinja2 не будут работать так, как ожидается, потому что шаблоны в Ansible рекурсивно оцениваются.
Примеры
- name: Create a file from a Jinja2 template
win_template:
src: /mytemplates/file.conf.j2
dest: C:\Temp\file.conf
- name: Create a Unix-style file from a Jinja2 template
win_template:
src: unix/config.conf.j2
dest: C:\share\unix\config.conf
newline_sequence: '\n'
Статус
- Этот модуль гарантирует отсутствие изменений интерфейса, несовместимых со старыми версиями, в будущем. [stableinterface]
- Этот модуль поддерживается командой разработчиков Ansible. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля Red Hat можно получить в этой статье базы знаний Red Hat.
Авторы
- Jon Hawkesworth (@jhawkesworth)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ для улучшения.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/win_template_module.html