我对Ansible相当新,但为我们的网站初步设置新客户或重新部署客户网站提供了相当全面的手册。
Ansible Revision = 2.0.0.2
Host = 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}}
我收到此错误:
失败! => {"更改":false,"失败":true," module_stderr":""," module_stdout": "回溯(最近一次调用最后一次):\ r \ n文件\" /root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion \",第2194行,在\ r \ n main()\ r \ n文件\" /root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion \",第231行,在主\ r \ n svn中。导出(强制=强制)\ r \ n文件\" /root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion \",第149行,在export \ r \ n self中。 _exec(cmd)\ r \ n文件\" /root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion \",第127行,在_exec \ r \ n rc,out中, err = self.module.run_command(bits,check_rc)\ r \ n文件\" /root/.ansible/tmp/ansible-tmp-1489135585.97-151625467432517/subversion \",2019行,在run_command中\ r \ n \ n \ args = [os.path.expandvars(os.path.expanduser(x))for args] \ r \ n文件\" /usr/lib64/python2.7/posixpath.py \ ",第261行,in expanduser \ r \ n如果不是path.startswith('〜'):\ r \ nAttributeError:' int' object没有属性' startswith' \ r \ n"," msg":" MODULE FAILURE","解析":false}
现在,如果我手动输入修订版保存revision=7840
,它将按预期工作。
此外,如果我调试变量
debug: msg={{svn_rev}}
它再次输出正确的修订版。
只是想知道是否有人能指出我正确的方向,因为我此刻有点难过。这可能是subversion模块的错误吗?
答案 0 :(得分:0)
模块显然需要一个字符串值,因此将svn_rev
定义为字符串:
vars:
svn_rev: "7840"
或将其转换为字符串。
您没有在问题中指明如何获得价值,因此您需要自己跟进。
您可能还会考虑在GitHub上填写问题或PR,因为常识是转换模块内的值。