win_template – Шаблон файла на удалённый сервер
Обзор
- Шаблоны обрабатываются с помощью языка шаблонов Jinja2.
- Документация по форматированию шаблонов доступна в Документации по проектированию шаблонов.
- Дополнительные переменные, перечисленные ниже, могут быть использованы в шаблонах.
-
ansible_managed(настраивается через разделdefaultsвansible.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 добавляют метку порядка байтов как первый символ файла, что может привести к ошибке.
- Вы можете использовать модуль win_copy с параметром
content:, если вы предпочитаете шаблон как часть плейбука. - Для Linux вы можете использовать шаблон, который по умолчанию использует ‘\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 рекурсивно оцениваются.
- Чтобы найти метки порядка байтов в файлах, используйте
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.8/modules/win_template_module.html