Поиск данных
Плагины поиска данных получают информацию из внешних источников, таких как файлы, базы данных, хранилища «ключ/значение», API и другие службы. Как и все шаблоны, плагины поиска данных выполняются и обрабатываются на управляющем узле Ansible. Ansible предоставляет данные, возвращаемые плагином поиска, с помощью стандартной системы шаблонов. До Ansible 2.5 плагины поиска в основном использовались косвенно в конструкциях with_<lookup> для организации циклов. Начиная с Ansible 2.5, плагины поиска используются более явно как часть выражений Jinja2, передаваемых ключевому слову loop.
Функция поиска
Функцию lookup можно использовать для динамического заполнения переменных. Ansible вычисляет значение при каждом выполнении задачи (или шаблона).
vars:
motd_value: "{{ lookup('file', '/etc/motd') }}"
tasks:
- debug:
msg: "motd value is {{ motd_value }}"
Первый аргумент функции lookup является обязательным и задаёт имя плагина поиска. Если плагин поиска входит в коллекцию, необходимо указать его полное имя, поскольку ключевое слово collections не применяется к плагинам поиска.
Функция lookup также принимает необязательный логический параметр wantlist, значение которого по умолчанию — False. Если True, результат поиска гарантированно будет списком.
Аргументы и ключевые слова, специфичные для плагина, см. в документации к этому плагину поиска.
Функция query/q
Эта функция является сокращённой записью для lookup(..., wantlist=True). Эти варианты эквивалентны:
block:
- debug:
msg: "{{ item }}"
loop: "{{ lookup('ns.col.lookup_items', wantlist=True) }}"
- debug:
msg: "{{ item }}"
loop: "{{ q('ns.col.lookup_items') }}"
Дополнительные сведения и список плагинов поиска в ansible-core см. в разделе Работа с плагинами. Плагины поиска также можно найти в коллекциях. Список плагинов поиска, установленных на управляющем узле, можно посмотреть с помощью команды ansible-doc -l -t lookup.
См. также
- Работа с плейбуками
-
Введение в плейбуки
- Условные выражения
-
Условные операторы в плейбуках
- Использование переменных
-
Всё о переменных
- Циклы
-
Циклы в плейбуках
- Общение
-
Есть вопросы? Нужна помощь? Хотите поделиться идеями? Посетите руководство по общению сообщества Ansible
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks_lookups.html