Spec-Zone.ru › Ansible 2.6

template - Шаблонизирует файл на удалённом сервере

  • Описание
  • Параметры
  • Примечания
  • Примеры
  • Статус
  • Техническое обслуживание
    • Поддержка
    • Автор

Описание

  • Шаблоны обрабатываются с помощью языка шаблонов Jinja2 (http://jinja.pocoo.org/docs/) — документация по форматированию шаблонов доступна в документации по проектированию шаблонов (http://jinja.pocoo.org/docs/templates/).
  • В шаблонах можно использовать шесть дополнительных переменных: ansible_managed (настраивается в разделе defaults ansible.cfg) содержит строку, которая может быть использована для описания имени шаблона, хоста, времени изменения файла шаблона и идентификатора владельца. template_host содержит имя узла машины, на которой находится шаблон. template_uid — числовой идентификатор пользователя владельца. template_path — путь к шаблону. template_fullpath — абсолютный путь к шаблону. template_run_date — дата рендеринга шаблона.

Параметры

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

псевдонимы: attr
backup
bool
    Варианты:
  • нет ←
  • да
Создать резервную копию файла, включая информацию о времени, чтобы вы могли восстановить исходный файл, если вы случайно его повредили.
block_end_string
(добавлен в 2.4)
Значение по умолчанию:
"%}"
Строка, обозначающая конец блока.
block_start_string
(добавлен в 2.4)
Значение по умолчанию:
"{%"
Строка, обозначающая начало блока.
dest
обязательно
Место назначения для рендеринга шаблона на удалённой машине.
follow
bool

(добавлен в 2.4)
    Варианты:
  • нет ←
  • да
Этот флаг указывает, что ссылки на файловую систему в месте назначения, если они существуют, должны быть прослежены.
До Ansible 2.4 это было жёстко задано значением yes.
force
bool
    Варианты:
  • нет
  • да ←
По умолчанию yes, что будет заменять удалённый файл, если содержимое отличается от исходного. Если no, файл будет передан только в том случае, если место назначения не существует.
group
Имя группы, которой должен принадлежать файл/каталог, как это передаётся команде chown.
lstrip_blocks
bool

(добавлен в 2.6)
    Варианты:
  • нет ←
  • да
Если это значение установлено в True, ведущие пробелы и табуляции удаляются из начала строки блока. Для установки этого параметра в True требуется версия Jinja2 >=2.7.
mode
Режим файла или каталога. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо указать ведущую ноль, чтобы Ansible знал, что это восьмеричное число (например, 0644 или 01777), или заключить его в кавычки (например, '644' или '0644'), чтобы Ansible получил строку и мог выполнить собственное преобразование строки в число. Передача Ansible числа без соблюдения одного из этих правил приведёт к десятичному числу, что приведёт к нежелательным результатам. Начиная с версии 1.8, режим может быть указан в символическом формате (например, u+rwx или u=rw,g=r,o=r). Начиная с версии 2.6, режим также может быть специальной строкой preserve. preserve означает, что файлу будут заданы те же разрешения, что и исходному файлу.
newline_sequence
(добавлен в 2.4)
    Варианты:
  • \n ←
  • \r
  • \r\n
Укажите последовательность символов новой строки для файлов шаблонов.
owner
Имя пользователя, которому должен принадлежать файл/каталог, как это передаётся команде chown.
selevel Значение по умолчанию:
"s0"
Часть контекста файла SELinux. Это атрибут MLS/MCS, иногда называемый range. Функция _default работает как для seuser.
serole
Часть роли контекста файла SELinux, функция _default работает как для seuser.
setype
Часть типа контекста файла SELinux, функция _default работает как для seuser.
seuser
Часть пользователя контекста файла SELinux. По умолчанию будет использоваться политика системы, если применимо. Если установлено значение _default, будет использоваться часть user политики, если она доступна.
src
обязательно
Путь к отформатированному шаблону Jinja2 на контроллере Ansible. Это может быть относительный или абсолютный путь.
trim_blocks
bool

(добавлен в 2.4)
    Варианты:
  • нет
  • да ←
Если это значение установлено в True, первая новая строка после блока удаляется (блок, а не тег переменной!).
unsafe_writes
bool

(добавлен в 2.2)
    Варианты:
  • нет ←
  • да
Обычно этот модуль использует атомарные операции, чтобы предотвратить повреждение данных или несогласованные чтения из целевых файлов. Иногда системы настроены или просто неисправны, что предотвращает это. Одним из примеров являются файлы, смонтированные в Docker; их нельзя обновлять атомарно, и это можно сделать только ненадёжным способом.
Этот логический параметр позволяет Ansible перейти к небезопасным методам обновления файлов в тех случаях, когда у вас нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных.
validate
Команда проверки, выполняемая перед копированием в место назначения. Путь к файлу для проверки передаётся через '%s', который должен присутствовать, как в примере ниже. Команда передаётся безопасно, поэтому такие возможности оболочки, как расширение и конвейеры, не будут работать.
variable_end_string
(добавлен в 2.4)
Значение по умолчанию:
"}}"
Строка, обозначающая конец инструкции печати.
variable_start_string
(добавлен в 2.4)
Значение по умолчанию:
"{{"
Строка, обозначающая начало инструкции печати.

Примечания

Примечание

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

Примеры

# Example from Ansible Playbooks
- template:
    src: /mytemplates/foo.j2
    dest: /etc/file.conf
    owner: bin
    group: wheel
    mode: 0644

# The same example, but 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"

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

# 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'

# 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, что означает, что разработчики этого модуля гарантируют, что не будут внесены обратные несовместимые изменения в интерфейс.

Техническое обслуживание

Этот модуль помечен как core, что означает, что он поддерживается основной командой Ansible. Дополнительную информацию см. в разделе Техническое обслуживание и поддержка модулей.

Список других модулей, которые также поддерживаются основной командой Ansible, см. в этом месте.

Поддержка

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

Автор

  • Команда разработчиков Ansible
  • Майкл ДеХан

Подсказка

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

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/template_module.html

Spec-Zone.ru

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