在Ansible YAML文件中编码斜杠/斜杠

在Ansible YAML文件中编码斜杠/斜杠,yaml,ansible,ansible-vault,Yaml,Ansible,Ansible Vault,在Ansible vault中存储随机生成的密码时,我没有问题,除非密码包含/(斜杠,正斜杠) 根据,当查看可打印的ascii字符时,我应该用反斜杠转义双引号、反斜杠和正斜杠 我已经试过了,但是我得到了一个解析错误 vault文件中的行 test: "a<>?x\/x.,:;'-=_+b*()c&d{}\"e^f[]!@g%h\\i$j" Ansible是Python,因此使用PyYaml。PyYaml实现了yaml1.1,而不是1.2。在YAML 1.1中,正斜杠不是可转

在Ansible vault中存储随机生成的密码时,我没有问题,除非密码包含/(斜杠,正斜杠)

根据,当查看可打印的ascii字符时,我应该用反斜杠转义双引号、反斜杠和正斜杠

我已经试过了,但是我得到了一个解析错误

vault文件中的行

test: "a<>?x\/x.,:;'-=_+b*()c&d{}\"e^f[]!@g%h\\i$j"

Ansible是Python,因此使用PyYaml。PyYaml实现了yaml1.1,而不是1.2。在YAML 1.1中,正斜杠不是可转义字符(而在1.2中是)

不要逃避正斜杠。它在YAML中不是特殊字符,因此不需要转义。由于与JSON兼容,YAML 1.2只为其添加了转义序列

如果您想一起避开难缠的转义问题,请使用块标量:

test: |-
  a<>?x/x.,:;'-=_+b*()c&d{}"e^f[]!@g%h\i$j
测试:|-
a?x/x.:;'-=_+b*()c&d{}e^f[]!@g%h\i$j

您不需要转义其中的任何内容。

如果不转义正斜杠,会出现什么错误?例如
test:“a?x/x,:;”-=_+b*()c&d{}“e^f[!@g%h\\i$j”
刚刚尝试过,您是对的,不需要转义
test: |-
  a<>?x/x.,:;'-=_+b*()c&d{}"e^f[]!@g%h\i$j