查找
查找插件从外部来源(如文件、数据库、键/值存储、API 和其他服务)检索数据。 与所有模板一样,查找在 Ansible 控制机器上执行和评估。 Ansible 使用标准模板系统使查找插件返回的数据可用。 在 Ansible 2.5 之前,查找主要间接用于 with_<lookup>
构造中进行循环。 从 Ansible 2.5 开始,查找更明确地用作馈入 loop
关键字的 Jinja2 表达式的一部分。
lookup 函数
可以使用 lookup
函数动态填充变量。 Ansible 每次在任务(或模板)中执行时都会评估该值。
vars:
motd_value: "{{ lookup('file', '/etc/motd') }}"
tasks:
- debug:
msg: "motd value is {{ motd_value }}"
lookup
函数的第一个参数是必需的,并指定查找插件的名称。如果查找插件位于集合中,则必须提供完全限定的名称,因为集合关键字 不适用于查找插件。
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
查看安装在控制机器上的查找插件列表。
另请参阅
- 使用 Playbook
Playbook 简介
- 条件
Playbook 中的条件语句
- 使用变量
关于变量的一切
- 循环
在 Playbook 中循环
- 沟通
有问题? 需要帮助? 想分享你的想法? 请访问 Ansible 通信指南