You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible在收集事实阶段SSH连接挂起问题求助

解决Ansible在Gathering Facts阶段SSH连接挂起的问题

问题现象

  • Ansible 2.9.6执行ansible-playbook -i hosts docker-server.yml时,在**TASK [Gathering Facts]**阶段SSH连接挂起
  • 中断操作后直接用SSH命令连接目标主机正常,Ansible ping模块运行也正常
  • 仅重启目标主机可临时解决,但无长期有效方案

触发挂起的SSH命令:

ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o 'IdentityFile=ot/.ssh/ssh_key' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o ControlPath=/root/.ble/cp/6ae141a49f HO.ST.I.P '/bin/sh -c "echo ~root && sleep 0"'

排查与解决方法

1. 关闭SSH连接复用(ControlPersist)

Ansible默认使用ControlMaster=auto和ControlPersist=60s复用SSH连接,这是导致挂起的常见原因。修改ansible.cfg配置:

[ssh_connection]
control_persist = 0
control_master = no

修改后重新执行playbook,观察是否仍会挂起。

2. 调整Gathering Facts策略

默认全量收集facts可能触发异常操作,尝试以下调整:

  • 改用智能收集模式:
    - hosts: all
      gather_facts: smart
    
  • 仅收集必要的facts子集:
    - hosts: all
      gather_facts: yes
      setup:
        gather_subset:
          - "!all"
          - "!min"
          - network
    
  • 关闭自动收集,手动执行带超时的setup模块:
    - hosts: all
      gather_facts: no
      tasks:
        - name: 手动收集facts
          setup:
          timeout: 30
    

3. 优化SSH客户端参数

调整认证顺序与连接参数,修改ansible.cfg:

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o Port=22 -o KbdInteractiveAuthentication=no -o PreferredAuthentications=publickey,gssapi-with-mic,gssapyex,hostbased -o PasswordAuthentication=no -o ConnectTimeout=15

将publickey置于认证顺序最前,避免gssapi相关的耗时认证尝试。

4. 检查目标主机sshd配置

登录目标主机,修改/etc/ssh/sshd_config:

  • 关闭DNS反向解析:
    UseDNS no
    
  • 调整连接阈值:
    MaxSessions 10
    MaxStartups 10:30:100
    

修改后重启sshd服务:systemctl restart sshd

5. 升级Ansible版本

Ansible 2.9.6存在已知的SSH连接相关bug,建议升级到2.9系列最新稳定版(如2.9.27)或更高版本(如2.10+),多数同类问题已在新版本中修复。

内容的提问来源于stack exchange,提问作者sivsoft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 11:06:19