win_template - Шаблонизирует файл на удалённом сервере
Новое в версии 1.9.2.
Обзор
- Шаблоны обрабатываются с помощью языка шаблонизации Jinja2 (http://jinja.pocoo.org/docs/) — документация по форматированию шаблонов доступна в документации по шаблонам (http://jinja.pocoo.org/docs/templates/).
- В шаблонах можно использовать шесть дополнительных переменных:
ansible_managed(настраивается в разделеdefaultsмодуляansible.cfg) содержит строку, которая может быть использована для описания имени шаблона, хоста, времени последнего изменения файла шаблона и идентификатора владельца;template_hostсодержит имя узла машины, где находится шаблон;template_uidсодержит имя владельца;template_pathсодержит абсолютный путь к шаблону;template_fullpathсодержит абсолютный путь к шаблону, аtemplate_run_dateсодержит дату рендеринга шаблона. Обратите внимание, что включение строки с датой в шаблон приведёт к тому, что шаблон будет помечен как изменённый каждый раз.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| block_end_string (добавлено в 2.4) | Значение по умолчанию: "%}" | Строка, обозначающая конец блока. |
| block_start_string (добавлено в 2.4) | Значение по умолчанию: "{%" | Строка, обозначающая начало блока. |
| dest обязательный | Место для рендеринга шаблона на удалённой машине. | |
| force bool (добавлено в 2.4) |
| Если yes, заменит удалённый файл, если содержимое отличается от исходного.Если no, файл будет передан только в том случае, если файла назначения не существует. |
| newline_sequence (добавлено в 2.4) |
| Укажите последовательность новых строк для использования в файлах шаблонов. |
| src обязательный | Путь к файлу шаблона Jinja2 на локальном сервере. Может быть относительным или абсолютным. | |
| trim_blocks bool (добавлено в 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, что означает, что авторы модуля гарантируют, что не будут вноситься несовместимые изменения интерфейса.
Техническое обслуживание
Этот модуль помечен как core, что означает, что он поддерживается основной командой Ansible. См. Техническое обслуживание и поддержка модулей для получения дополнительной информации.
Список других модулей, также поддерживаемых командой Ansible Core Team, см. здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией 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.6/modules/win_template_module.html