ansible,命令行变量中的空格

时间:2015-09-15 10:49:36

标签: ansible

我即将提升许多本地开发的debian软件包的更新日志。我正在使用'Ansible'从devscripts包中调用'dch'。我正在使用Ansible,因为我已经拥有了Ansible变量中列出的包的subversion路径。我希望能够将实际的changelog消息作为命令行变量输入,但似乎ansible无法解析在命令行中输入的变量中的空格。

我试过了

ansible-playbook tag_changelog_on_packages.yml -e changelog_message="testing testing"
ansible-playbook tag_changelog_on_packages.yml -e changelog_message='testing testing'
ansible-playbook tag_changelog_on_packages.yml -e changelog_message=testing\ testing
ansible-playbook tag_changelog_on_packages.yml -e changelog_message="testing\ testing"

在所有情况下,我只进行第一次“测试”。最后一次尝试使用ValueError: No escaped character导致ansible崩溃,可能是因为空白被剥离了。

我错过了什么吗?

干杯

1 个答案:

答案 0 :(得分:12)

这是因为它首先由shell处理,它会占用您使用的引号和反斜杠。

你可以将整个参数括在单引号中,告诉shell不要触及里面的内容。然后可以将变量的值括在双引号中,这将保留在ansible中。

ansible-playbook tag_changelog_on_packages.yml -e 'changelog_message="testing testing"'