Ansible 主机变量中的 sharp 问题

Ansible 主机变量中的 sharp 问题

由于 # 在 /etc/ansible/hosts 中被视为注释,因此我无法使用包含尖符号的密码。

[hosts]
host1 ansible_ssh_user=user ansible_ssh_pass=userpass ansible_su_pass=My#Password

然后使用原始命令:

$ ansible host1 -m raw -a "whoami" --su
host1 | FAILED | rc=1 >>

su: Authentication failure

如果我使用不带 # 的密码,则一切正常。有解决方法吗?

答案1

在库存文件中,下面的示例给出了所需的结果。

[hosts:vars]
ansible_su_pass=My#Password

但是该变量与主机组中的所有主机相关,因此更好的方法是创建一个文件“/etc/ansible/host_vars/host1”并将以下内容放入其中:

ansible_su_pass: My#Password

答案2

您可以使用#内联,通过使用 进行转义\,即ansible_su_pass=My\#Password。确保您使用的是最新版 Ansible,因为 ini 解析器已经随着时间的推移而发展。

相关内容