首页 > 解决方案 > Ansible SVN 结帐中的“无法在路径中找到所需的可执行 svn”错误

问题描述

我正在尝试通过运行 Ansible 剧本使用 Ansible SVN 模块来签出一个 SVN 存储库。当我检查 SVN 存储库时,我收到以下错误:

TASK [pipelinerole : Checkout/Update SVN repository] ***************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Failed to find required executable svn in paths: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin:/sbin:/usr/sbin:/usr/local/sbin"}
[WARNING]: Could not create retry file '/home/pipelinesite.retry'.
[Errno 13] Permission denied: u'/home/pipelinesite.retry'

PLAY RECAP *********************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=1 

我正在使用 Ansible 角色来运行 SVN Checkout。我添加了用于 SVN 结帐的 YAML,如下所示:

 - name: Checkout/Update SVN repository
   subversion:
    repo: http://<My-IP>/svn/pipeline
    checkout: yes
    update: yes
    In_place: yes
    force: yes
    dest: ../../SpaceStudyTest
    username: <My-Username>
    password: <My-Password>

我的 SVN 密码和正确的权限已用于签出目录。我在这里犯了什么错误?

标签: svnansible

解决方案


你需要在你的系统上安装 'svn' 才能让这个 Ansible 模块工作。文档中提到了它。错误是说 Ansible 无法在其环境中的路径中找到 svn 命令。

如果你还没有安装'svn'包。如果已安装,请运行

which svn

或者

find / -name 'svn' -type f

找到二进制文件,然后添加executable: <path returned by the previous commands>到您的颠覆任务定义或将包含“svn”的目录添加到 $PATH 环境变量。


推荐阅读