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

手动执行Ansible Playbook报“No existing session”错误的解决咨询

问题解决方案

1. 对齐Ansible版本

直接切换到cron使用的Ansible 2.9.27版本执行Playbook:

  • 执行时指定完整路径:/path/to/ansible-2.9.27/bin/ansible-playbook your_playbook.yml
  • 或者临时调整环境变量优先级:
    export PATH=/path/to/ansible-2.9.27/bin:$PATH
    ansible-playbook your_playbook.yml
    

2. 适配Ansible 2.8.1的SSH参数

如果必须使用2.8.1版本,在Playbook或ansible.cfg中添加兼容配置,禁用SSH会话复用:

  • Playbook内配置示例:
    - hosts: SwitchA
      gather_facts: no
      vars:
        ansible_ssh_common_args: "-o ControlMaster=no -o ControlPath=None"
        ansible_ssh_pipelining: no
      tasks:
        # 你的任务内容
    
  • 或修改当前目录下的ansible.cfg:
    [ssh_connection]
    control_path = None
    control_master = no
    pipelining = no
    

3. 检查SwitchA的SSH会话限制

登录SwitchA查看SSH服务配置,确认是否限制了会话复用或特定连接方式:

  • 华为设备执行:display ssh server configuration
  • 思科设备执行:show ip ssh
  • 确保设备允许非复用模式的SSH连接,无客户端会话模式限制

4. 同步环境变量

对比cron与手动执行的环境变量,确保SSH相关变量一致:

  1. 在cronjob中添加命令导出环境变量:env > /tmp/cron_env.txt
  2. 手动执行时加载该环境变量:source /tmp/cron_env.txt && ansible-playbook your_playbook.yml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:32:02