如何使用Ansible自动将Cisco IOS交换机running-config备份到TFTP服务器
解决ios_command执行copy running-config tftp命令失效问题
失效原因
copy running-config tftp属于思科IOS的交互式命令,执行后设备会依次弹出TFTP地址输入、文件名输入的提示,而ios_command模块默认是连续发送命令列表中的指令,不会匹配设备的交互提示,因此直接按普通命令列表配置会执行失败。
解决方案
方案1:使用ios_command原生交互参数处理(兼容性最好)
通过模块自带的prompt、answer参数匹配设备交互提示,按顺序返回对应输入内容,配置示例如下:
- name: 备份运行配置到TFTP服务器 cisco.ios.ios_command: commands: - command: copy running-config tftp prompt: - "Address or name of remote host \\[\\]?" - "Destination filename \\[.*\\]?" answer: - "192.168.1.20" # 替换为你的TFTP服务器实际IP - "core_sw_running.cfg" # 替换为自定义的备份文件名
注意:
prompt字段使用正则匹配设备提示内容,特殊符号需加转义符\。
方案2:使用非交互式URI格式命令(写法更简洁)
绝大多数主流IOS/IOS XE版本支持直接在copy命令后拼接完整TFTP地址,跳过交互步骤,不需要额外配置交互参数:
- name: 备份运行配置到TFTP服务器 cisco.ios.ios_command: commands: - copy running-config tftp://192.168.1.20/core_sw_running.cfg
注意事项
- 执行任务的IOS账号需要持有特权模式权限,否则无法读取运行配置
- 确认网络设备到TFTP服务器的UDP 69端口无ACL拦截,连通性正常
内容的提问来源于stack exchange,提问作者Just Lucky
相关产品推荐
相关产品推荐

