在ansible中加载ssh_密钥以运行svn+;ssh

在ansible中加载ssh_密钥以运行svn+;ssh,svn,ansible,Svn,Ansible,我需要使用svn+ssh编写一个任务来签出一个repository 下面是我如何能够手动完成这项工作,这项工作非常完美 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

我需要使用svn+ssh编写一个任务来签出一个repository

下面是我如何能够手动完成这项工作,这项工作非常完美

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在运行subversion任务时似乎没有加载我的密钥,这导致任务失败,出现以下情况

Unable to connect to a repository at URL 'svn+ssh:/svnserver/repo/src

你知道如何运行它以便在任务运行时加载我的用户密钥吗?

我强烈感觉到你的手册
ssh add
将ssh密钥添加到你的用户的代理,因此运行
svn co svn+ssh://svnserver/repo/src /path/to/checkout
在您登录时将起作用,但是对于Ansible,您以my\u user
成为\u user:my\u user
)的身份运行任务,对于my\u user,您尚未添加私钥

您能看看切换到my_用户,然后执行
ssh add
命令是否有帮助吗


但是,老实说,我不是ssh代理的超级粉丝。我发现拥有并依赖我自己的ssh配置文件更加透明。

感谢您的反馈。实际上,my_用户也是运行任务的ansible用户。您是否使用
local
连接类型来执行subversion任务?您是否在执行代理的同一个shell中执行ansible playbook?