ansible.builtin.pipe lookup – 读取命令输出

注意

此查找插件是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 pipe。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.pipe,以便轻松链接到插件文档并避免与可能具有相同查找插件名称的其他集合冲突。

摘要

  • 运行命令并返回输出。

术语

参数

注释

术语

字符串 / 必需

要运行的命令。

注释

注意

  • 与所有查找一样,这在 Ansible 控制器上运行,不受其他关键字(如 become)的影响,因此,如果您需要不同的权限,则必须更改命令或以其他用户身份运行 Ansible。

  • 或者,您可以使用针对 localhost 运行并注册结果的 shell/command 任务。

  • Pipe lookup 在内部调用 Popen 并设置 shell=True(这是必需的且有意的)。如果未采取适当的措施来清理任何用户提供或变量输入,则此类型的调用被视为安全问题。强烈建议在与 pipe lookup 一起使用之前,通过 quote 过滤器传递用户输入或变量输入。有关此内容,请参阅示例部分。详细了解此内容,请参阅 Bandit B602 文档

  • play 的目录用作当前工作目录。

示例

- name: raw result of running date command
  ansible.builtin.debug:
    msg: "{{ lookup('ansible.builtin.pipe', 'date') }}"

- name: Always use quote filter to make sure your variables are safe to use with shell
  ansible.builtin.debug:
    msg: "{{ lookup('ansible.builtin.pipe', 'getent passwd ' + myuser | quote ) }}"

返回值

描述

返回值

列表 / 元素=字符串

命令的标准输出

返回:成功

作者

  • Daniel Hokka Zakrisson

提示

每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。