+-

我试图在 ansible 中运行一个 pip 和 lookup 命令,就像这样。
set_fact: mydate="{{lookup('pipe','date +%d %b %r %Z')}}"
上面的命令失败了,因为我需要这部分+%d %b %r %Z是引号。更准确地说,这是我试图在ansible中使用lookup运行的shell命令。
sh-4.4$ TZ=":US/Eastern" date +'%d %b %r'
即输出
12 May 04:47:32 AM
但不知何故,当我试图将它添加到查找和管道在ansible中,由于错误的引号转义,我想这并不工作?. 我如何使用ansible管道和查找模块运行带引号的shell命令?
2
投票
投票
我可以这样写,避免使用嵌套引号。
- hosts: localhost
tasks:
- set_fact:
date_utc: >-
{{ lookup('pipe', 'TZ=UTC date "+%d %b %r %Z"') }}
- debug:
msg:
- "{{ date_utc }}"
这就是使用YAML 块状标量 经营者(>)进行引用。
同时注意,这里我们将 TZ 内的环境变量。pipe 查找,因为使用 environment 钥匙在这种情况下无法使用。