知易通
第二套高阶模板 · 更大气的阅读体验

批量配置网络设备的工具:让运维不再熬夜改IP

发布时间:2025-12-12 18:36:54 阅读:326 次

公司有50台交换机要调配置,每台都要登录、改IP、设VLAN,你是不是还在一台台手动敲命令?别笑,这事儿我真干过,整整熬了一宿,第二天眼睛跟兔子似的。后来用了批量配置网络设备的工具,效率直接起飞。

为啥非得用批量工具?

想想这个场景:新开了个分部,20台路由器等着上线。如果一个个连上去配,光输入用户名密码就得半小时。更别说中间手一抖输错一个子网掩码,整个网络都可能瘫掉。批量工具的核心价值就是——把重复动作自动化,一次写好脚本,几十上百台设备同时搞定。

常见的几种工具类型

Python + Paramiko 是我最常用的组合。它能通过SSH自动登录设备,执行预设命令。比如下面这段代码,能同时给多台华为交换机配置管理地址:

import paramiko
import time

devices = [
    {"ip": "192.168.1.10", "username": "admin", "password": "pass123"},
    {"ip": "192.168.1.11", "username": "admin", "password": "pass123"}
]

for device in devices:
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(device["ip"], username=device["username"], password=device["password"])

    shell = client.invoke_shell()
    shell.send("system-view\n")
    time.sleep(1)
    shell.send("interface vlanif 1\n")
    shell.send(f"ip address {device['ip']} 255.255.255.0\n")
    time.sleep(1)
    shell.send("quit\n")
    shell.close()
    print(f"{device['ip']} 配置完成")

除了自己写脚本,也可以用现成的平台。像Ansible这种,不用在目标设备装客户端,靠SSH就能推配置。写个playbook,定义好任务流程,一条命令跑完所有设备。我们之前升级防火墙策略,从改规则到下发验证,原来要三小时,现在八分钟搞定。

别忽视安全和回滚

批量操作爽归爽,一旦出错就是一片红。建议每次批量前先备份原配置。可以在脚本里加一行自动导出配置到TFTP服务器:

shell.send("tftp 192.168.1.100 put startup-config config_backup_{device['ip']}.cfg\n")

万一改完发现上不了网,立刻用备份文件恢复,比重新配置快得多。另外,别在上班高峰改核心设备,最好选晚上或者周末,留足容错时间。

现在我们机房扩容,新设备一上架,插上网线通电,几分钟内全部自动完成初始化配置。以前觉得这是运维神话,现在看,不过是工具用对了而已。