我需要使用svn ssh编写任务才能结帐。
这是我能够手动做到完美效果
的方式ssh-add /home/my_user/.ssh/id_rsa
svn co svn+ssh://svnserver/repo/src /path/to/checkout
但是,使用以下任务似乎是失败的,因为我的密钥未加载
- name: Checkout code
subversion:
repo: svn+ssh://svnserver/repo/src
dest: /path/to/checkout
become_user: my_user
become: no
手动加载密钥后运行SSH -ADD -L时,我确实看到我的键已加载。但是,Ansible在运行颠覆任务时似乎并没有加载我的钥匙,这导致任务失败以下。
Unable to connect to a repository at URL 'svn+ssh:/svnserver/repo/src
任何想法如何运行此操作,以便在运行任务时加载我的用户密钥?
我有一种强烈的感觉,您的手册ssh-add
将SSH键添加到>您的 uders的代理中,因此在 you >中运行svn co svn+ssh://svnserver/repo/src /path/to/checkout
登录将有效,但是对于Ansible,您将任务运行为 my_user ( become_user: my_user
(,对于 my_user ,您尚未添加私有密钥。
您可以查看它是否有助于切换到my_user,然后执行ssh-add
命令?
但是,老实说,我不是SSH-Agent的忠实拥护者。我发现拥有并依靠自己的SSH配置文件更透明。