【问题标题】:ansible git clone times outansible git clone 超时
【发布时间】:2018-07-08 06:01:24
【问题描述】:

在服务器上我可以成功运行以下命令:

ssh-agent bash -c 'ssh-add /path/key; git clone https://repo_path/repo_name.git'

repo 被克隆到 'repo_name'

但是,当我在本地计算机上运行以下 ansible (2.2) 脚本时,克隆任务会无限期停止

- name: clone or pull latest web app code
  git: repo=https://repo_path/repo_name.git dest=/home/user/repo_name
     key_file=/path/key
     accept_hostkey=yes
     force=yes

克隆之前的其他任务工作正常(apt 更新、库安装等)

我正在使用以下方法检查路径是否正确,并且它们看起来还可以:

- debug:
    msg: "about to clone code {{ code_repository }} to {{ base_dir }}"

有什么想法吗?

【问题讨论】:

    标签: git ansible ansible-2.x


    【解决方案1】:

    注意:ssh-add /path/key 和 git clone https://repo_path/repo_name.git 彼此没有任何关系。
    ssh-add /path/key 用于向 ssh-agent 添加受密码保护的私有 SSH 密钥,以便在执行时缓存所述密码将需要 SSH URL。
    https://repo_path/... 是一个 HTTPS URL,这意味着它不需要 SSH 密钥。完全没有。

    ansible git module 确实提到:

    accept_hostkey
    

    如果是,请确保“-o StrictHostKeyChecking=no”存在作为 ssh 选项。

    同样,URL 是 HTTPS,因此不需要。

    尝试删除key-file和accept_hostkey,看看HTTPS克隆是否可以继续。


    对于 SSH URL,您需要确保:

    【讨论】:

    • 我认为你在正确的轨道上。是的 ssh 示例我给我粘贴了错误的代码应该是 ssh-agent bash ... git@... 查看我所有其他的剧本,我在使用它之后使用 repo=ssh//git@repo_path/repo_name.git https 我失败了! => {"changed": false, "cmd": ["/usr/bin/git", "fetch", "--tags", "origin"], "failed": true, "msg": "失败下载远程对象和引用:权限被拒绝(公钥)。\r\n致命:无法从远程存储库读取。\n\n请确保您具有正确的访问权限\n并且存储库存在。\n"
    • @proximacentauri 那么它可能只是一个没有在服务器端直接发布的公钥(在~git/.ssh/authorized_keys中),或者~/.ssh/known_hosts没有正确更新,正如我昨天看到的stackoverflow.com/a/51226565/6309和askubuntu.com/a/45685/5470。
    • @proximacentauri 我已将最后一条评论包含在答案中以获得更多可见性。
    猜你喜欢
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 2015-12-25
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多