Ansible Subversion 修订导出问题

Ansible Subversion Revision Export issue

我是 Ansible 的新手,但我有一本相当全面的手册,用于我们为新客户或重新部署客户站点进行的站点初始设置。

Ansible 修订版 = 2.0.0.2

主机 = Ubuntu 16.04 最新

远程主机 = CentOS 7 从最小安装到最新

后者是我遇到问题的地方,我从我们的 SVN 存储库导出并且工作正常。

name: Export from subversion
subversion: repo=svn+ssh://svnserver/file/path/svn/repo/trunk dest={{site_dir}} username=svn export=True 

当我添加

name: Export from subversion
subversion: repo=svn+ssh://svnserver/file/path/svn/repo/trunk dest={{site_dir}} username=svn export=True revision={{svn_rev}}

我收到这个错误:

FAILED! => {"changed": false, "failed": true, "module_stderr": "", "module_stdout": "Traceback (most recent call last):\r\n File \"/root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion\", line 2194, in \r\n main()\r\n File \"/root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion\", line 231, in main\r\n svn.export(force=force)\r\n File \"/root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion\", line 149, in export\r\n self._exec(cmd)\r\n File \"/root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion\", line 127, in _exec\r\n rc, out, err = self.module.run_command(bits, check_rc)\r\n File \"/root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion\", line 2019, in run_command\r\n args = [ os.path.expandvars(os.path.expanduser(x)) for x in args ]\r\n File \"/usr/lib64/python2.7/posixpath.py\", line 261, in expanduser\r\n if not path.startswith('~'):\r\nAttributeError: 'int' object has no attribute 'startswith'\r\n", "msg": "MODULE FAILURE", "parsed": false}

现在,如果我手动输入修订保存 revision=7840 它会按预期工作。

另外如果我调试变量

debug: msg={{svn_rev}}

它再次输出正确的修订版。

只是想知道是否有人可以指出正确的方向,因为我现在有点困惑。这可能是颠覆模块的错误吗?

模块显然需要一个字符串值,所以将svn_rev定义为一个字符串:

vars:
  svn_rev: "7840"

或将其转换为字符串。

你在问题中没有具体说明你是如何得到这个值的,所以需要你自己跟进。


您也可以考虑在 GitHub 上填写问题或 PR,因为常识是在模块内部转换值。