我正在尝试在 ansible 中运行一个 pip 和查找命令,如下所示:
set_fact: mydate="{{lookup('pipe','date +%d %b %r %Z')}}"
上面的命令失败,因为我需要这部分 +%d %b %r %Z 用引号引起来。更准确地说,这是我尝试使用查找在 ansible 中运行的 shell 命令
sh-4.4$ TZ=":US/Eastern" date +'%d %b %r'
给出输出
12 May 04:47:32 AM
但不知何故,当我尝试将其添加到查找中并由于错误的引号转义而无法正常工作时,我想?.如何使用带引号的 ansible 管道和查找模块运行 shell 命令
我会这样写,避免嵌套引号:
- hosts: localhost
tasks:
- set_fact:
date_utc: >-
{{ lookup('pipe', 'TZ=UTC date "+%d %b %r %Z"') }}
- debug:
msg:
- "{{ date_utc }}"
这是使用YAML块标量运算符(>
(进行引用。
另请注意,此处我们在pipe
查找中设置TZ
环境变量,因为在这种情况下使用environment
键不起作用。