Spec-Zone.ru › Ansible 2.9

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

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

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

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
Атрибуты, которые должны иметь результирующий файл или директория.
Для получения поддерживаемых флагов см. страницу справки для 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, помните, что режимы фактически являются восьмеричными числами. Вы должны добавить ведущую ноль, чтобы парсер 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
логическое значение
    Варианты:
  • нет ←
  • да
Влияние на использование атомной операции для предотвращения повреждения данных или несогласованного чтения из целевого файла.
По умолчанию этот модуль использует атомные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним примером являются файлы, смонтированные с помощью 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. [core]

Поддержка Red Hat

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

Авторы

  • Команда Ansible Core
  • 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.9/modules/template_module.html

Spec-Zone.ru

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