Расширенный синтаксис
Эта страница описывает расширенный синтаксис YAML, который позволяет вам иметь больший контроль над данными, размещенными в файлах YAML, используемых Ansible.
Теги YAML и типы Python
Небезопасные или сырые строки
Начиная с Ansible 2.0, существует внутренний тип данных для объявления значений переменных как «небезопасных». Это означает, что данные, содержащиеся в значении переменной, должны рассматриваться как небезопасные, предотвращая подстановку небезопасных символов и раскрытие информации.
Jinja2 содержит функциональность для экранирования или указания Jinja2 не шаблонизировать данные с помощью функций, таких как {% raw %} ... {% endraw %}, однако это использует более полную реализацию для обеспечения того, что значение никогда не будет шаблонизировано.
Используя теги YAML, вы также можете пометить значение как «небезопасное», используя тег !unsafe например:
---
my_unsafe_variable: !unsafe 'this variable has {{ characters that should not be treated as a jinja2 template'
В книге задач это может выглядеть так:
---
hosts: all
vars:
my_unsafe_variable: !unsafe 'unsafe value'
tasks:
...
Для сложных переменных, таких как хеши или массивы, !unsafe следует использовать для отдельных элементов, например:
---
my_unsafe_array:
- !unsafe 'unsafe element'
- 'safe element'
my_unsafe_hash:
unsafe_key: !unsafe 'unsafe value'
См. также
- Переменные
- Все о переменных
- Пользовательский список рассылки
- У вас есть вопрос? Заходите в группу Google!
- irc.freenode.net
- #ansible IRC чат-канал
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/playbooks_advanced_syntax.html