尽管看起来很简单,但当尝试克隆一个带有子模块的git存储库时,我的ansible设置会挂起。 “父”存储库被克隆没有问题,但是ansible任务无法克隆子模块,实际上在此之后挂起,就好像它正在等待某种响应一样...
这是克隆存储库的ansible任务:
- name: Clone/Pull the {{ certificate_authority.repo.name }} repository
become: yes
git: repo="{{ ca.repo.url }}" force=yes accept_hostkey=yes clone=yes version="{{ git_branch | default(git_tag) }}"
dest="{{ ca.repo.dest }}" key_file={{ ca.repo.key.location }}/{{ ca.repo.key.name }} recursive=yes track_submodules=yes
有没有想法,为什么ansible在克隆这个仓库时会卡住?
-vvv
参数是否会产生有用的细节?如果它挂起时运行ps
命令,它正在运行哪个git
命令行?你能否在同一系统上从命令行成功克隆它? - larsks-vvvv
运行会包含以下有趣的片段...正在查找 /var/folders/z9/v1czs6dd7vb5jtq_0fr8f5y80000gp/T/tmp_lrYWR\r\ndebug3: 发送消息 fd 8 T:17 I:2\r\ndebug3: 收到状态回复 T:101 I:2\r\ndebug1: 无法查看远程文件: 没有这样的文件或目录\r\ndebug3: 发送消息 SSH2_FXP_OPEN I:3 ... SSH2_FXP_STATUS 0\r\ndebug3: mux_client_read_packet: 读取标头失败: 管道破裂\r\ndebug2: 从主进程接收退出状态 0\r\n')
。运行ps aux|grep git
显示以下内容正在运行 - reayn3ps aux | grep git
命令可以显示正在运行的命令,包括/usr/bin/python /tmp/ansible_6X_csE/ansible_module_git.py
、/usr/bin/git submodule update --init --recursive --force
、/bin/sh /usr/lib/git-core/git-submodule update --init --recursive --force
(对于每个子模块)、git submodule--helper update-clone
和/usr/lib/git-core/git submodule--helper clone --path lib/first-subproject --name lib/first-subproject --url https://reayn@bitbucket.org/reayn/first-subproject.git
。因此,似乎 ansible 正在尝试克隆存储库。 - reayn3