如何在Ansible中将单引号和单引号传递给字符串变量

时间:2020-02-19 08:44:23

标签: ansible yaml

我对YML和Ansible相当陌生,但是我的任务是为我的工作做一些自动化。 我有一个字符串变量,里面需要有双引号和单引号:

-d 'request=("folder":"Testing_it","attributes":{})'

所以我已经快速编写了一个简单的剧本,将检查它是否有效:

- name: Assign variable
set_fact:
  params: " -d 'request=(\"folder\":\"Testing_it\",\"attributes\":{})'"

- name: Show output
debug:
  msg: "{{ params }}"

我想在继续之前查看变量的外观,这是Ansible的输出:

    ok: [localhost] => {
    "msg": " -d 'request=(\"folder\":\"Testing_it\",\"attributes\":{})'"
}

为什么反斜杠包含在该变量中?有人可以帮助我如何正确编码以使其按预期工作

非常感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您无需对单引号进行转义,只需对双引号进行反斜杠\

即可转义

要确保正确设置params变量,可以将它们输出到文件中并查看内容:

- name: Save output
  copy: content="{{ params }}" dest=/path/to/destination/file