ansible.windows.win_template – Шаблон файла на удалённом сервере
Примечание
Этот плагин является частью коллекции ansible.windows (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install ansible.windows.
Для использования в книге задач укажите: ansible.windows.win_template.
Обзор
- Шаблоны обрабатываются языком шаблонов Jinja2.
- Документация по формату шаблонов доступна в Документации по созданию шаблонов.
- Ниже перечислены дополнительные переменные, которые можно использовать в шаблонах.
-
ansible_managed(настраивается через разделdefaultsвansible.cfg) содержит строку, которая может использоваться для описания имени шаблона, хоста, времени изменения файла шаблона и идентификатора владельца. -
template_hostсодержит имя узла машины шаблона. -
template_uid— числовой идентификатор пользователя владельца. -
template_path— путь к шаблону. -
template_fullpath— абсолютный путь к шаблону. -
template_destpath— путь к шаблону на удалённой системе (добавлен в версии 2.8). -
template_run_date— дата рендеринга шаблона.
Примечание
У этого модуля есть соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| backup boolean |
| Определяет, следует ли создавать резервную копию. Если установлено yes, создается файл резервной копии с информацией о времени, чтобы вы могли восстановить исходный файл, если вы ошибочно его перезаписали. |
| block_end_string string | По умолчанию: "%}" | Строка, обозначающая конец блока. |
| block_start_string string | По умолчанию: "{%" | Строка, обозначающая начало блока. |
| dest path / required | Место назначения для рендеринга шаблона на удалённой машине. | |
| force boolean |
| Определяет, как файл будет передаваться, если место назначения уже существует. Если установлено yes, удалённый файл будет заменён, если его содержимое отличается от исходного.Если установлено no, файл будет передаваться только в том случае, если место назначения не существует. |
| lstrip_blocks boolean |
| Определяет, следует ли удалять начальные пробелы и табуляции. Если установлено yes, начальные пробелы и табуляции удаляются из начала строки блока.Для этой функциональности требуется Jinja 2.7 или более поздняя версия. |
| newline_sequence string |
| Указывает последовательность символов новой строки для шаблонов файлов. |
| output_encoding string | По умолчанию: "utf-8" | Заменяет кодировку, используемую для записи файла шаблона, определённого в dest. По умолчанию utf-8, но можно использовать любую кодировку, поддерживаемую python.Исходный файл шаблона должен всегда быть закодирован в utf-8, для единообразия. |
| src path / required | Путь к файлу шаблона Jinja2 на контроллере Ansible. Это может быть относительный или абсолютный путь. Файл должен быть закодирован в utf-8, но output_encoding может использоваться для управления кодировкой выходного шаблона. | |
| trim_blocks boolean |
| Определяет, следует ли удалять новые строки из блоков. Если установлено yes, первая новая строка после блока удаляется (блок, а не тег переменной!). |
| variable_end_string string | По умолчанию: "}}" | Строка, обозначающая конец инструкции печати. |
| variable_start_string string | По умолчанию: "{{" | Строка, обозначающая начало инструкции печати. |
Примечания
Примечание
- Включение строки с датой в шаблоне приведет к тому, что шаблон будет помечен как «изменённый» каждый раз.
- Также можно переопределить настройки Jinja2, добавив специальный заголовок в файл шаблона. Например,
#jinja2:variable_start_string:'[%', variable_end_string:'%]', trim_blocks: False, который меняет маркеры интерполяции переменных на[% var %]вместо{{ var }}. Это лучший способ предотвратить оценку того, что выглядит как, но не должно быть Jinja2. - Использование raw/endraw в Jinja2 не будет работать так, как вы ожидаете, потому что шаблоны в Ansible обрабатываются рекурсивно.
- Для поиска символов следования байтов в файлах используйте
Format-Hex <file> -Count 16в Windows иod -a -t x1 -N 16 <file>в Linux. - Будьте осторожны при получении файлов с машин Windows при создании шаблонов, так как некоторые инструменты, такие как Powershell ISE и утилита экспорта regedit, добавляют символ следования байтов как первый символ файла, что может привести к исключениям.
- Можно использовать модуль ansible.windows.win_copy с параметром
content:, если вы предпочитаете встраивать шаблон в книгу задач. - Для Linux можно использовать ansible.builtin.template, который по умолчанию использует «\n» в качестве
newline_sequence.
См. также
См. также
- ansible.windows.win_copy
-
Официальная документация модуля ansible.windows.win_copy.
- ansible.builtin.copy
-
Официальная документация модуля ansible.builtin.copy.
- ansible.builtin.template
-
Официальная документация модуля ansible.builtin.template.
Примеры
- name: Create a file from a Jinja2 template
ansible.windows.win_template:
src: /mytemplates/file.conf.j2
dest: C:\Temp\file.conf
- name: Create a Unix-style file from a Jinja2 template
ansible.windows.win_template:
src: unix/config.conf.j2
dest: C:\share\unix\config.conf
newline_sequence: '\n'
backup: yes
Возвращаемые значения
Общие возвращаемые значения описаны в документации. Ниже приведены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_file string | если backup=да | Имя созданного файла резервной копии. Пример: C:\Путь\К\Файлу.txt.11540.20150212-220915.bak |
Авторы
- 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.10/collections/ansible/windows/win_template_module.html