查找

查找插件从外部来源检索数据,例如文件、数据库、键值存储、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 沟通指南