win_template – Шаблон файла на удаленном сервере
Описание
- Шаблоны обрабатываются с помощью языка шаблонов Jinja2.
- Документация по форматированию шаблонов находится в Документации по шаблонам.
- Дополнительные переменные, перечисленные ниже, могут использоваться в шаблонах.
-
ansible_managed(настраивается в разделеdefaultsansible.cfg) содержит строку, которая может использоваться для описания имени шаблона, хоста, времени изменения файла шаблона и идентификатора владельца. -
template_hostсодержит имя узла машины шаблона. -
template_uid— числовой идентификатор пользователя владельца. -
template_path— путь к шаблону. -
template_fullpath— абсолютный путь к шаблону. -
template_destpath— путь к шаблону в удаленной системе (добавлен в версии 2.8). -
template_run_date— дата, когда шаблон был сгенерирован.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| backup логический добавлен в 2.8 |
| Определяет, нужно ли создавать резервную копию. При значении yes, создаётся резервная копия файла, включающая информацию о времени, чтобы вы могли восстановить исходный файл, если что-то пошло не так. |
| block_end_string строка добавлен в 2.4 | Значение по умолчанию: "%}" | Строка, обозначающая конец блока. |
| block_start_string строка добавлен в 2.4 | Значение по умолчанию: "{%" | Строка, обозначающая начало блока. |
| dest путь / обязательно | Место расположения шаблона на удалённой машине. | |
| force логический добавлен в 2.4 |
| Определяет, как происходит передача файла, если файл назначения уже существует. При значении yes, удалённый файл заменяется, если содержимое отличается от исходного.При значении no, файл будет передан только в том случае, если файл назначения не существует. |
| lstrip_blocks логический добавлен в 2.6 |
| Определяет, нужно ли удалять ведущие пробелы и табуляции. При значении yes ведущие пробелы и табуляции удаляются с начала строки блока.Эта функция требует Jinja 2.7 или новее. |
| newline_sequence строка добавлен в 2.4 |
| Указывает последовательность символов новой строки для шаблона файлов. |
| output_encoding строка добавлен в 2.7 | Значение по умолчанию: "utf-8" | Переопределяет кодировку, используемую для записи файла шаблона, определённого в dest. По умолчанию utf-8, но можно использовать любую кодировку, поддерживаемую Python.Исходный файл шаблона всегда должен быть закодирован в utf-8, для единообразия. |
| src путь / обязательно | Путь к файлу шаблона Jinja2 на контроллере Ansible. Может быть относительным или абсолютным. Файл должен быть закодирован в utf-8, но output_encoding может использоваться для управления кодировкой выходного шаблона. | |
| trim_blocks логический добавлен в 2.4 |
| Определяет, нужно ли удалять новые строки из блоков. При значении yes, первая новая строка после блока удаляется (блок, а не тег переменной!). |
| variable_end_string строка добавлен в 2.4 | Значение по умолчанию: "}}" | Строка, обозначающая конец инструкции печати. |
| variable_start_string строка добавлен в 2.4 | Значение по умолчанию: "{{" | Строка, обозначающая начало инструкции печати. |
Примечания
Примечание
- Будьте осторожны при получении файлов с машин Windows при создании шаблонов, так как некоторые инструменты, такие как Powershell ISE и средства экспорта regedit, добавляют символ Byte Order Mark в начале файла, что может привести к ошибкам.
- Вы можете использовать модуль win_copy с опцией
content:, если предпочитаете встроенный шаблон как часть playbook. - Для Linux вы можете использовать template, который по умолчанию использует ‘\n’ как
newline_sequence. - Включение строки с датой в шаблон приведёт к тому, что шаблон будет помечен как изменённый каждый раз.
- Начиная с Ansible 0.9, шаблоны загружаются с
trim_blocks=True. - Также вы можете переопределить настройки Jinja2, добавив специальный заголовок в файл шаблона, например,
#jinja2:variable_start_string:'[%', variable_end_string:'%]', trim_blocks: False, который изменит маркеры интерполяции переменных на[% var %]вместо{{ var }}. Это лучший способ предотвратить оценку того, что выглядит как, но не должно быть Jinja2. - Использование raw/endraw в Jinja2 не сработает так, как вы ожидаете, потому что шаблоны в Ansible рекурсивно оцениваются.
- Для поиска символов Byte Order Mark в файлах используйте
Format-Hex <file> -Count 16в Windows иod -a -t x1 -N 16 <file>в Linux.
См. также
См. также
- win_copy – Копирование файлов в удалённые расположения на хостах Windows
- Официальная документация модуля win_copy.
- copy – Копирование файлов в удалённые расположения
- Официальная документация модуля copy.
- template – Шаблон файла на удалённом сервере
- Официальная документация модуля template.
Примеры
- 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'
backup: yes
Возвращаемые значения
Общие возвращаемые значения описаны в документации, следующие — поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_file строка | если backup=да | Имя резервного файла, который был создан. Пример: C:\Путь\К\Файлу.txt.11540.20150212-220915.bak |
Статус
- Этот модуль гарантированно будет поддерживать обратную совместимость с будущими изменениями интерфейса. [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.9/modules/win_template_module.html