当前位置: 首页 > news >正文

Ansible 怎么配置 ssh_args 优化连接超时和重试次数?

遇到 Ansible 连接超时,最稳妥的做法是修改控制端的 ansible.cfg 配置文件,通过调整 timeout 参数和 ssh_args 中的心跳设置来适应网络环境,而不是去改动被控端的 SSH 服务配置。

先说结论:优先在 ansible.cfg 的 [defaults] 段增加 timeout 值,并在 ssh_args 中配置 ServerAliveInterval 保持连接活跃。若标题涉及“重试次数”,需区分 SSH 连接保持与 Playbook 任务重试机制。

  • 适合场景:网络波动较大、长任务执行易断连的自动化环境
  • 先准备:确认 ansible.cfg 文件路径,备份原配置
  • 再验证:使用 -vvv 参数运行 ping 模块观察连接日志

如何定位配置文件路径

新手常找不到 ansible.cfg 在哪里。Ansible 按特定顺序查找配置,最快捷的确认方式是运行版本命令:

ansible `--version`

输出信息中会包含 "config file = /path/to/ansible.cfg"。如果显示 "None",说明当前未加载配置文件,需在当前目录或 /etc/ansible/ 下创建。

配置 SSH 连接参数

在配置文件中进行修改。注意不同版本 Ansible 对配置段的兼容性略有差异,优先尝试 [defaults],若无效可尝试 [ssh_connection]。

[defaults]
timeout = 30
ssh_args = -o ControlMaster=auto -o ControlPersist=600s -o ServerAliveInterval=30 -o ServerAliveCountMax=2# 若上述不生效,部分新版本可能需放在此段
# [ssh_connection]
# ssh_args = -o ControlMaster=auto -o ControlPersist=600s -o ServerAliveInterval=30

参数说明:timeout 定义连接建立超时;ServerAliveInterval 定义心跳间隔;ControlPersist 启用连接复用,减少握手开销。

补充:Ansible 任务级重试

标题提到的“重试次数”也可能指任务失败后的重试。这与 SSH 连接超时不同,需在 Playbook 中配置:

- hosts: alltasks:- name: Run unstable taskcommand: /some/commandretries: 3delay: 10until: result.rc == 0register: result

或者在 ansible.cfg 中启用重试文件记录,方便后续重跑失败主机:

[defaults]
retry_files_enabled = True

验证方法

使用 verbose 模式运行测试命令,结合 grep 过滤关键错误:

ansible -m ping all -vvv 2>&1 | grep -i -E "timeout|unreachable|retry"

如果无输出或仅显示成功日志,说明配置生效。也可执行一个耗时约 40 秒的 sleep 任务,观察是否因超时被切断。

常见坑与排查

1. ControlPersist 路径权限:SSH 复用依赖控制套接字文件,默认在 ~/.ansible/cp/,确保该目录存在且权限正确,否则报错 "ControlSocket ... already exists"。

2. SSH 版本兼容:某些旧版 SSH 客户端不支持 ControlMaster,如遇报错可去掉 ControlMaster 相关参数。

3. 防火墙拦截:确保控制端到被控端的 22 端口通畅,中间网络设备可能拦截空闲连接。

4. 配置优先级:当前目录下的 ansible.cfg 优先级高于 /etc/ansible/ansible.cfg,修改前确认生效的是哪个文件。

原文链接:https://www.zjcp.cc/ask/11071.html

http://www.jsqmd.com/news/815057/

相关文章:

  • 深入解析Harepacker-resurrected:专业级MapleStory资源编辑完整指南
  • 医疗资质认证自动化:基于MCP的智能筛查与风险量化实践
  • OpenCore Configurator:让黑苹果配置变得如此简单的免费图形化工具
  • AI抠图的几种方法,我用过这6款工具后的真实对比
  • 3天掌握百度网盘秒传:从零基础到高效分享达人
  • 机场混凝土道面摊铺车辆行驶控制【附方案】
  • 2026年亲测10款论文降AI工具:谁能把AIGC率从95%降到10%?(附知网真实对比图) - 降AI实验室
  • 终极免费开源工具:AntiDupl帮你快速清理重复和缺陷图片
  • 西南财经大学小自考助学点怎么查询?新概念助学点怎么报名?2026年联系方式官方公告! - 知名不具123
  • 成都机房设备回收市场分化,选正规服务商避坑指南 - 速递信息
  • 从力场选择到结果分析:Forcite模拟表面吸附的避坑指南与实战心得
  • CAN FD技术解析:从汽车到工业自动化的跨界应用与实战指南
  • 从6T SRAM原理到SoC集成:深入理解RISC-V中的ILM与DLM定制内存
  • 新疆旅游避坑指南|选对领队阿木,省心玩遍大美新疆 - 速递信息
  • 2026年4月称重仪表厂家推荐,称重模块/智能称重称重设备/平台秤/称重仪表/地磅,称重仪表供应商口碑推荐 - 品牌推荐师
  • 手把手教你解决Ubuntu 16.04虚拟机安装Matlab 2018a时的‘DVD2’挂载难题
  • 湖南省CPPM注册职业采购经理证书官方授权报考机构及课程详解 - 品牌企业推荐师(官方)
  • 分期乐购物额度回收:盘活沉睡资产的安全方法 - 团团收购物卡回收
  • 从ETOPO1到BAT_WHU2020:聊聊全球海底地形模型这十几年的‘内卷’与选择
  • Mac Mouse Fix 终极指南:解决 macOS 鼠标体验痛点,让你的普通鼠标媲美 Apple Trackpad
  • 报名 | 清华大数据智能讲堂——流程挖掘教父威尔教授:为何AI需要以对象为中心的流程挖掘
  • 2026年东莞衣柜橱柜定制TOP5:东莞三喜家具有限公司口碑实测优选 - 速递信息
  • 2026国内电焊眼镜TOP5!这些出口公司出口服务商口碑出众广受好评 - 十大品牌榜
  • 抖音批量下载终极指南:5分钟搞定无水印视频收集
  • 量子优化算法与经典算法在Max-Cut问题中的性能对比
  • 【力扣100题】42.杨辉三角
  • Win10代理设置总被改?可能是微软账户同步的‘锅’!一个本地账户登录的临时解法与永久修复
  • 从零到一:基于FISCO BCOS联盟链构建智能合约开发环境
  • Visual C++运行库终极解决方案:告别DLL缺失烦恼的快速指南
  • 3种方法彻底解决Mac NTFS读写难题:免费开源工具终极指南