Расширенный синтаксис
Эта страница описывает расширенный синтаксис YAML, который позволяет вам иметь больший контроль над данными, размещаемыми в файлах YAML, используемых Ansible.
Теги YAML и типы Python
Небезопасные или сырые строки
Ansible предоставляет внутренний тип данных для объявления значений переменных как «небезопасных». Это означает, что данные, содержащиеся в значении переменной, должны обрабатываться как небезопасные, предотвращая подстановку небезопасных символов и раскрытие информации.
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'
См. также
- Переменные
- Все о переменных
- Список рассылки пользователей
- Есть вопрос? Заходите на форум!
- 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.5/user_guide/playbooks_advanced_syntax.html