从基础设施即代码(IAC)、配置标准化、变更管理、设备纳管,到运维系统、日常实战、可视化大屏,全流程覆盖,配 Python 代码参考,贴合 SRE 日常工作流。
技术栈总览
环节 | 核心工具/技术 | Python 结合点 |
基础设施即代码 | Terraform、Ansible | Python 调用 Ansible Runner、自定义模块 |
配置标准化 | Jinja2、YAML | Python 渲染模板、配置校验 |
变更标准化 | 流程规范 + 脚本 | Python 变更脚本(预检查/执行/回滚) |
设备纳管 | Scapy、SNMP、数据库 | Python 资产发现、信息采集、入库 |
运维系统 | FastAPI、SQLite | Python 轻量级后端 API |
日常运维 | 批量脚本、异常处理 | Python 巡检、备份、故障排查 |
运维大屏 | Matplotlib、InfluxDB、Grafana | Python 数据采集、可视化 |
1 基础设施即代码(IAC)
1.1 概念与流程
IAC 核心是用代码定义和管理基础设施,避免手动配置的不一致性。
编排层:Terraform 定义虚拟机、网络、云资源
配置层:Ansible 批量配置服务器、网络设备
Python 价值:调用 IAC 工具、编写自定义插件、串联流程
1.2 Python 调用 Ansible 批量配置
SRE 要点
所有基础设施配置代码化,Git 版本管理
Python 串联 IAC 流程,实现“一键部署”
执行结果记录日志,便于审计和回滚
2 配置标准化
2.1 概念与流程
配置标准化是用模板定义统一配置规范,避免“雪花设备”。
模板层:Jinja2 定义配置模板
数据层:YAML/JSON 存储设备变量
校验层:Python 校验配置合法性
2.2 Python + Jinja2 渲染网络设备配置
SRE 要点
配置模板与数据分离,便于批量生成
配置必须校验后再下发,避免错误配置
所有配置文件 Git 版本管理,支持回滚
3 变更标准化
3.1 概念与流程
变更标准化是用流程和脚本控制变更风险,核心是:
预检查:验证环境、依赖、权限
变更执行:原子化操作,可追溯
变更验证:检查业务、配置、状态
回滚机制:失败时快速恢复
3.2 Python 变更脚本(带预检查+回滚)
SRE 要点
变更必须有预检查、回滚、验证
所有变更操作记录日志,便于审计
重大变更先在测试环境验证,再灰度发布
4 设备纳管与资产管理
4.1 概念与流程
设备纳管是自动发现、采集、入库资产信息,建立统一资产库。
发现层:ARP/ICMP 扫描发现在线设备
采集层:SNMP/SSH 采集设备信息
存储层:数据库存储资产信息
4.2 Python 设备纳管脚本
SRE 要点
定期自动扫描,保持资产库最新
资产信息包含 IP、MAC、厂商、状态、最后发现时间
资产库是监控、变更、巡检的基础
5 轻量级运维系统(FastAPI)
5.1 概念与流程
用 FastAPI 搭建轻量级运维后端,提供设备管理、变更请求、资产查询 API。
5.2 Python FastAPI 代码
使用方法
启动服务:python sre_system.py
访问文档:http://127.0.0.1:8000/docs
调用 API:查询资产、提交变更请求
6 日常运维实战 Case
6.1 Case 1:批量设备巡检
6.2 Case 2:批量配置备份
7 运维大屏与可视化
7.1 Matplotlib 本地可视化
7.2 InfluxDB + Grafana 企业级大屏
Grafana 配置
数据源:添加 InfluxDB,数据库 sre_monitor
面板:新建折线图,查询 SELECT "usage" FROM "device_cpu" WHERE $timeFilter
告警:配置 CPU > 80% 告警
SRE 视角总结
全流程价值
标准化:IAC + 配置模板,消除手动配置差异
自动化:设备纳管、巡检、备份、变更全自动化
可观测:资产库 + 监控 + 大屏,全面掌握基础设施
容错性:变更回滚、异常处理、预检查,降低风险
进阶方向
大规模自动化:Celery + Redis 分布式任务调度
智能运维:机器学习异常检测、预测性维护
云原生:Kubernetes Operator、GitOps
安全合规:操作审计、配置合规检查、漏洞扫描