Spec-Zone.ru › Ansible 2.8

template – Шаблон для вывода файла на удаленный сервер

  • Краткое описание
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Статус

Краткое описание

  • Шаблоны обрабатываются с помощью языка шаблонов Jinja2.
  • Документацию по форматированию шаблонов можно найти в Документации по дизайну шаблонов.
  • Дополнительные переменные, перечисленные ниже, могут быть использованы в шаблонах.
  • ansible_managed (настраивается через раздел defaults раздела ansible.cfg) содержит строку, которая может быть использована для описания имени шаблона, хоста, времени изменения файла шаблона и идентификатора владельца.
  • template_host содержит имя узла машины шаблона.
  • template_uid — это числовой идентификатор пользователя владельца.
  • template_path — это путь к шаблону.
  • template_fullpath — это абсолютный путь к шаблону.
  • template_destpath — это путь шаблона на удаленной системе (добавлено в версии 2.8).
  • template_run_date — это дата, когда шаблон был сгенерирован.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
добавлен в 2.3
Атрибуты, которые должны быть у результирующего файла или каталога.
Для получения поддерживаемых флагов обратитесь к странице руководства для chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr.
Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.

псевдонимы: attr
backup
логическое значение
    Варианты:
  • нет ←
  • да
Создать резервную копию файла, включая информацию о времени создания, чтобы вы могли восстановить исходный файл, если вы неправильно его перезаписали.
block_end_string
строка
добавлен в 2.4
Значение по умолчанию:
"%}"
Строка, обозначающая конец блока.
block_start_string
строка
добавлен в 2.4
Значение по умолчанию:
"{%"
Строка, обозначающая начало блока.
dest
путь / обязательно
Расположение для рендеринга шаблона на удаленной машине.
follow
логическое значение
добавлен в 2.4
    Варианты:
  • нет ←
  • да
Определить, следует ли следовать символическим ссылкам.
При установке в значение yes символические ссылки будут следовать, если они существуют.
При установке в значение no символические ссылки не будут следовать.
До Ansible 2.4 это было жёстко закодировано как yes.
force
логическое значение
    Варианты:
  • нет
  • да ←
Определить, что делать, когда файл передается, если целевой файл уже существует.
При установке в значение yes, заменить удаленный файл, если содержимое отличается от исходного.
При установке в значение no, файл будет передан только в том случае, если целевой файл не существует.
group
строка
Имя группы, которая должна владеть файлом/каталогом, как если бы оно было передано в chown.
lstrip_blocks
логическое значение
добавлен в 2.6
    Варианты:
  • нет ←
  • да
Определить, когда необходимо удалять начальные пробелы и табуляции.
При установке в значение yes ведущие пробелы и табуляции удаляются из начала строки до блока.
Эта функциональность требует Jinja 2.7 или более поздней версии.
mode
строка
Разрешения, которые должен иметь результирующий файл или каталог.
Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую цифру 0, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777) , либо заключить его в кавычки (например, '644' или '1777') , чтобы Ansible получил строку и смог выполнить собственное преобразование из строки в число.
Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что повлечёт неожиданные результаты.
Начиная с Ansible 1.8, режим может быть указан в символическом формате (например, u+rwx или u=rw,g=r,o=r).
newline_sequence
строка
добавлен в 2.4
    Варианты:
  • \n ←
  • \r
  • \r\n
Укажите последовательность символов новой строки для файлов шаблонов.
output_encoding
строка
добавлен в 2.7
Значение по умолчанию:
"utf-8"
Переопределяет кодировку, используемую для записи файла шаблона, определенного dest.
По умолчанию используется utf-8, но можно использовать любую кодировку, поддерживаемую python.
Исходный файл шаблона всегда должен быть закодирован с использованием utf-8, для однородности.
owner
строка
Имя пользователя, который должен владеть файлом/каталогом, как если бы оно было передано в chown.
selevel
строка
Значение по умолчанию:
"s0"
Часть контекста файла SELinux, относящаяся к уровню.
Это атрибут MLS/MCS, иногда известный как range.
При установке в _default, будет использоваться часть политики level, если она доступна.
serole
строка
Часть контекста файла SELinux, относящаяся к роли.
При установке в _default, будет использоваться часть политики role, если она доступна.
setype
строка
Часть контекста файла SELinux, относящаяся к типу.
При установке в _default, будет использоваться часть политики type, если она доступна.
seuser
строка
Часть контекста файла SELinux, относящаяся к пользователю.
По умолчанию используется политика system, где это применимо.
При установке в _default, будет использоваться часть политики user, если она доступна.
src
путь / обязательно
Путь к файлу шаблона Jinja2 на контроллере Ansible.
Это может быть относительный или абсолютный путь.
Файл должен быть закодирован с использованием utf-8, но output_encoding может использоваться для управления кодировкой выходного шаблона.
trim_blocks
логическое значение
добавлен в 2.4
    Варианты:
  • нет
  • да ←
Определить, когда необходимо удалять новые строки из блоков.
При установке в yes, первая новая строка после блока удаляется (блок, а не тег переменной!).
unsafe_writes
логическое значение
добавлен в 2.2
    Варианты:
  • нет ←
  • да
Влияет на использование атомарных операций для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто работают некорректно, что препятствует этому. Примером является файлы, смонтированные в Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только неатомарно.
Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (однако он не заставляет Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.
validate
строка
Команда проверки, которая должна быть выполнена перед копированием в целевое место.
Путь к файлу для проверки передается через '%s', который должен присутствовать, как в примерах ниже.
Команда передаётся безопасно, так что такие оболочки как расширение и каналы, не будут работать.
variable_end_string
строка
добавлен в 2.4
Значение по умолчанию:
"}}"
Строка, обозначающая конец оператора печати.
variable_start_string
строка
добавлен в 2.4
Значение по умолчанию:
"{{"
Строка, обозначающая начало оператора печати.

Примечания

Примечание

  • Вы можете использовать модуль copy с параметром content: , если вы предпочитаете встроенную в шаблон версию, как часть плана действий.
  • Для Windows вы можете использовать win_template, который по умолчанию использует ‘\r\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.

См. также

См. также

copy – Копирование файлов на удаленные расположения
Официальная документация по модулю copy.
win_copy – Копирование файлов на удаленные расположения на хостах Windows
Официальная документация по модулю win_copy.
win_template – Шаблонизация файла на удаленный сервер
Официальная документация по модулю win_template.

Примеры

- name: Template a file to /etc/files.conf
  template:
    src: /mytemplates/foo.j2
    dest: /etc/file.conf
    owner: bin
    group: wheel
    mode: '0644'

- name: Template a file, using symbolic modes (equivalent to 0644)
  template:
    src: /mytemplates/foo.j2
    dest: /etc/file.conf
    owner: bin
    group: wheel
    mode: u=rw,g=r,o=r

- name: Copy a version of named.conf that is dependent on the OS. setype obtained by doing ls -Z /etc/named.conf on original file
  template:
    src: named.conf_{{ ansible_os_family}}.j2
    dest: /etc/named.conf
    group: named
    setype: named_conf_t
    mode: 0640

- name: Create a DOS-style text file from a template
  template:
    src: config.ini.j2
    dest: /share/windows/config.ini
    newline_sequence: '\r\n'

- name: Copy a new sudoers file into place, after passing validation with visudo
  template:
    src: /mine/sudoers
    dest: /etc/sudoers
    validate: /usr/sbin/visudo -cf %s

- name: Update sshd configuration safely, avoid locking yourself out
  template:
    src: etc/ssh/sshd_config.j2
    dest: /etc/ssh/sshd_config
    owner: root
    group: root
    mode: '0600'
    validate: /usr/sbin/sshd -t -f %s
    backup: yes

Статус

  • Гарантируется, что в этом модуле не будет изменений интерфейса, несовместимых со старыми версиями. [stableinterface]
  • Этот модуль поддерживается командой разработчиков Ansible. [core]

Поддержка Red Hat

Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний Red Hat.

Авторы

  • Команда разработчиков Ansible
  • Michael DeHaan

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете редактировать этот документ, чтобы улучшить его.

© 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/template_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API