查找
查找插件从外部来源检索数据,例如文件、数据库、键值存储、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
函数的第一个参数是必需的,它指定查找插件的名称。如果查找插件位于集合中,则必须提供完全限定名称,因为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
查看在您的控制机器上安装的查找插件列表。
另请参见
- 使用 playbook
playbook 入门
- 条件语句
playbook 中的条件语句
- 使用变量
关于变量的一切
- 循环
playbook 中的循环
- 沟通
有问题?需要帮助?想分享您的想法?请访问 Ansible 沟通指南