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