ansible.builtin.pipe lookup – 从命令读取输出
注意
此 lookup 插件是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 pipe
。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.pipe
以便轻松链接到插件文档并避免与可能具有相同 lookup 插件名称的其他集合发生冲突。
概要
运行命令并返回输出。
术语
参数 |
注释 |
---|---|
要运行的命令。 |
备注
注意
与所有 lookup 一样,这在 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 ) }}"
返回值
键 |
描述 |
---|---|
来自命令的标准输出 返回:成功 |