为什么需要网络自动化
公司刚扩容了50台交换机,传统方式是一台一台登录设备配置。运维小李花了整整三天,眼睛都快贴到屏幕上。第二天就出错了,某台核心交换机ACL规则写反,导致财务部门断网两小时。这种重复又高风险的操作,正是网络自动化要解决的问题。
家庭宽带升级千兆后,路由器频繁掉线。老张每次都要手动重启、重拨号。如果能设置自动检测网络状态并触发重启脚本,就不必半夜爬起来按按钮了。
搭建前的准备
明确目标很重要。是想批量配置设备?还是实时监控链路状态?或是故障自愈?某电商公司在大促前会自动扩容WAN带宽,活动结束自动缩容,这种场景化需求要先理清楚。
选择合适的工具链。Python搭配Netmiko可以操作老旧设备,Ansible适合批量执行命令,Prometheus+Grafana做可视化监控。就像装修房子,扳手、电钻各有用处。
实战:用Python实现配置备份
给所有华为交换机每天凌晨自动备份配置。先在跳板机部署脚本:
import paramiko
import datetime
def backup_config(host):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=host, username="admin", password="P@ssw0rd")
stdin, stdout, stderr = ssh.exec_command("display current-configuration")
config = stdout.read().decode("utf-8")
filename = f"{host}_backup_{datetime.date.today()}.cfg"
with open(filename, "w") as f:
f.write(config)
ssh.close()配合Linux的crontab定时执行,早上上班就能收到备份完成邮件。
避坑指南
某银行自动化脚本误将"shutdown"命令推送到生产环境主干道,造成区域断网。关键操作必须加确认机制,类似git commit时的二次提示。
不要忽略日志留存。某次DNS异常波动,靠三个月前的自动化操作日志才定位到是IP地址冲突。建议把每次执行记录存入ELK集群。
新手常犯的错误是追求一步到位。建议从最痛的点切入,比如先实现密码批量修改,再逐步扩展功能。就像学骑自行车,没人一上来就玩特技。
家庭场景也能自动化
家里有老人不会处理网络故障?用树莓派写个监测脚本:
#!/bin/bash
if ! ping -c 3 1.1.1.1 &> /dev/null; then
curl http://admin:password@192.168.1.1/reboot
echo "$(date) 路由器已重启" >> /var/log/reboot.log
fi插在电视盒子旁边,比智能插座还靠谱。
进阶思路
把工单系统和自动化平台打通。当用户提交"新增VLAN"申请,审批通过后自动在交换机创建对应配置,完工后邮件通知申请人。某高校用这招把业务开通时间从3天缩短到2小时。
设备告警信息接入微信机器人。半夜三点空调漏水触发传感器,不仅短信报警,还会自动关闭机房电源,并呼叫值班人员。真正的7×24小时守护不是盯着屏幕,而是让系统自己干活。