查找

查找插件从外部来源(如文件、数据库、键/值存储、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 通信指南