来自svn的Ansible pull

来自svn的Ansible pull,svn,ansible,ansible-playbook,Svn,Ansible,Ansible Playbook,我正在尝试Ansible的pull模型,特别是我需要从SVN签出Ansible剧本。 我试过了 是,有拼写错误(未报告)。 如果我执行命令ansible doc-l,我可以在模块列表中看到subversion。 我还安装了python subversion(apt get install python subversion),并检查是否正确安装 但是,我仍然有这个错误,我如何使ansible pull与svn一起工作?-mansible pull的参数不是标准的ansible模块(您可以通过an

我正在尝试Ansible的pull模型,特别是我需要从SVN签出Ansible剧本。 我试过了

是,有拼写错误(未报告)。
如果我执行命令
ansible doc-l
,我可以在模块列表中看到subversion。
我还安装了python subversion(apt get install python subversion),并检查是否正确安装

但是,我仍然有这个错误,我如何使ansible pull与svn一起工作?

-m
ansible pull的参数不是标准的ansible模块(您可以通过
ansible doc-l
获得)。
它是围绕标准模块的内部包装,位于
ansible pull
cli实用程序中。
在撰写此答案时,
git
是唯一受支持的拉取模块(也是默认的模块)。

定义是:
SUPPORTED\u REPO\u MODULES=['git']

我让它工作了。我需要在此处编辑已安装的pull.py文件(Centos 7):

我添加了如下subversion:

SUPPORTED_REPO_MODULES = ['git', 'subversion']
ansible-pull -m subversion -U http://subversion.company.com/test/ansible/trunk/playbook --full local.yml -i hosts
我运行的命令行如下所示:

SUPPORTED_REPO_MODULES = ['git', 'subversion']
ansible-pull -m subversion -U http://subversion.company.com/test/ansible/trunk/playbook --full local.yml -i hosts
如果没有--full,我会得到一个错误,它是这样说的:

E155000: '/home/user/.ansible/pull/computername' already exists
如果没有-i主机,则会出现错误:

sudo: a password is required
似乎是因为它使用了隐式localhost

https://docs.ansible.com/ansible/latest/inventory/implicit_localhost.html
我的主机文件有一个条目:

[pull]
localhost connection=paramiko ansible_user=ansible
如果不指定local.yml,它将与主机名匹配,主机名将期望computername.yml存在。也许可以

[pull]
localhost connection=paramiko ansible_user=ansible