Spec-Zone.ru › Ansible 2.5

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)
По умолчанию:
None
Атрибуты файла или директории. Для получения поддерживаемых флагов обратитесь к справке man для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr.

алиасы: attr
backup
    Варианты:
  • no ←
  • yes
Создать резервную копию файла, включая информацию о времени, чтобы можно было восстановить исходный файл, если он был неверно перезаписан.
block_end_string
(добавлен в 2.4)
По умолчанию:
%}
Строка, отмечающая конец блока.
block_start_string
(добавлен в 2.4)
По умолчанию:
{%
Строка, отмечающая начало блока.
dest
обязательно
Место назначения для рендеринга шаблона на удалённой машине.
follow
(добавлен в 2.4)
    Варианты:
  • no ←
  • yes
Этот флаг указывает, что ссылки на файловую систему в пункте назначения, если они существуют, должны быть пройдены.
До Ansible 2.4 это было жёстко задано как yes.
force
    Варианты:
  • no
  • yes ←
По умолчанию yes, что означает замену удалённого файла, когда содержимое отличается от исходного. Если no, файл будет передан только в том случае, если пункт назначения не существует.
group По умолчанию:
None
Имя группы, которая должна владеть файлом/директорией, как если бы это подавалось в chown.
mode По умолчанию:
None
Режим файла или директории. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами (например, 0644 или 01777). Пропуск стартовой нуля приведёт к непредсказуемым результатам. Начиная с версии 1.8, режим может быть указан в символической форме (например, u+rwx или u=rw,g=r,o=r).
newline_sequence
(добавлен в 2.4)
    Варианты:
  • \n ←
  • \r
  • \r\n
Укажите последовательность символов новой строки для файлов шаблонов.
owner По умолчанию:
None
Имя пользователя, который должен владеть файлом/директорией, как если бы это подавалось в chown.
selevel По умолчанию:
s0
Уровень части контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. _default функция работает так же, как и для seuser.
serole По умолчанию:
None
Роль части контекста файла SELinux, _default функция работает так же, как и для seuser.
setype По умолчанию:
None
Тип части контекста файла SELinux, _default функция работает так же, как и для seuser.
seuser По умолчанию:
None
Пользователь части контекста файла SELinux. По умолчанию использует политику системы, если применимо. Если установлено _default, будет использоваться часть user политики, если доступна.
src
обязательно
Путь к форматированному шаблону Jinja2 на контроллере Ansible. Это может быть относительный или абсолютный путь.
trim_blocks
(добавлен в 2.4)
    Варианты:
  • no ←
  • yes
Если установлено в True, первая новая строка после блока будет удалена (блок, а не тег переменной!).
unsafe_writes
(добавлен в 2.2)
    Варианты:
  • no ←
  • yes
Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов. Иногда системы настроены или просто сломаны таким образом, что это предотвращается. Один пример — файлы, смонтированные в Docker, которые не могут обновляться атомарно и могут обновляться только небезопасным способом.
Этот логический параметр позволяет Ansible использовать небезопасные методы обновления файлов в тех случаях, когда у вас нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных.
validate По умолчанию:
None
Команда валидации, выполняемая перед копированием на место. Путь к файлу для валидации передаётся через '%s', который должен быть присутствовать, как в примере ниже. Команда передаётся безопасно, поэтому такие функции оболочки, как расширение и подстановка, не будут работать.
variable_end_string
(добавлен в 2.4)
По умолчанию:
}}
Строка, отмечающая конец оператора вывода.
variable_start_string
(добавлен в 2.4)
По умолчанию:
{{
Строка, отмечающая начало оператора вывода.

Примечания

Примечание

  • Для Windows можно использовать win_template, который использует ‘rn’ в качестве 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, что означает, что разработчики этого модуля гарантируют, что не будут вноситься обратные несовместимые изменения в интерфейс.

Поддержка

Дополнительную информацию о поддержке этого модуля 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.5/modules/template_module.html

Spec-Zone.ru

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