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

使用Ansible的cisco.ios.ios_config模块获取运行配置报错求助

问题解答

关于defaults: yes时命令不识别的问题

你追踪到的ios.py第455行的逻辑,是Ansible针对IOS设备配置获取的模板化处理——这里的?是占位符,用于根据设备实际支持的命令自动替换,但不是所有IOS设备都兼容show running-config all:

  • 部分IOS版本(比如早期IOS XE、低端交换机机型)只支持show running-config的特定参数,all可能被替换为full,甚至完全不支持该参数
  • 模块设计优先保证通用兼容性,而非强制使用all参数

解决办法:

  • 手动通过defaults_command选项覆盖默认命令,指定设备支持的全量配置查询命令:
    - name: 获取包含默认配置的运行配置
      cisco.ios.ios_config:
        defaults: yes
        defaults_command: 'show running-config all'
    
  • 先在设备上执行show running-config ?,确认你的设备支持的全量配置参数,再替换到defaults_command中

关于show running-config all的权限问题

show running-config all不需要root权限,而是需要设备的特权EXEC模式权限(即enable权限)。你无法用shell模块执行该命令,是因为shell模块默认在用户EXEC模式下运行,未进入特权模式。

解决办法:

  • 若要执行该命令,优先使用ios_command模块,它会自动处理特权模式切换:
    - name: 获取全量运行配置
      cisco.ios.ios_command:
        commands: 'show running-config all'
      vars:
        ansible_become: yes
        ansible_become_method: enable
    
  • 避免用shell模块操作IOS设备配置类命令,专用模块(ios_config/ios_command)更适配IOS的权限和命令体系

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:45:37