ansible.windows.win_template – Шаблон файла на удаленном сервере
Примечание
Этот плагин входит в собирание ansible.windows (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install ansible.windows.
Чтобы использовать его в книге задач, укажите: ansible.windows.win_template.
Обзор
- Шаблоны обрабатываются языком шаблонов Jinja2.
- Документация по форматированию шаблонов доступна в Документации по проектированию шаблонов.
- Дополнительные переменные, перечисленные ниже, могут использоваться в шаблонах.
-
ansible_managed(настраивается в разделеdefaultsansible.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 / обязательно | Место назначения рендеринга шаблона на удаленном компьютере. | |
| 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 / обязательно | Путь к 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/windows/win_template_module.html