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

如何将Cisco IOS设备字典移至外部文件实现Python批量配置?

从外部YAML文件读取Cisco设备列表并批量配置

1. 安装PyYAML依赖库

首先需要安装用于解析YAML文件的工具库:

pip install pyyaml

2. 创建设备清单YAML文件

新建devices.yaml文件,将所有设备信息按列表格式写入,每个设备的结构和你原脚本中的字典一致:

- device_type: cisco_ios
  ip: 192.168.122.71
  username: admin
  password: cisco
- device_type: cisco_ios
  ip: 192.168.122.82
  username: admin
  password: cisco
# 后续新增设备直接按上述格式追加即可

3. 修改Python脚本

替换原脚本中硬编码的设备定义,改为从YAML文件读取设备列表:

from netmiko import ConnectHandler
import yaml

# 读取YAML格式的设备清单
with open('devices.yaml', 'r') as f:
    all_devices = yaml.safe_load(f)

# 读取配置命令文件
with open('snmp_configs.txt') as f:
    config_lines = f.read().splitlines()
print(config_lines)

# 遍历所有设备执行配置
for device in all_devices:
    net_connect = ConnectHandler(**device)
    output = net_connect.send_config_set(config_lines)
    print(output)
    net_connect.disconnect()  # 显式断开连接,避免资源占用

关键注意点

  • YAML文件对缩进敏感,必须使用空格缩进,禁止使用制表符
  • 生产环境中不要明文存储密码,可使用加密工具(如ansible-vault)对YAML文件加密,脚本中添加对应解密逻辑
  • 若不同设备需要执行不同配置,可在YAML的设备条目里新增config_file字段,脚本中根据该字段读取对应配置文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:57:19