许昌学院信息化管理中心 孙培岩
凭借着简洁与高效的代码语言以及丰富的第三方库,Python成为网络自动化运维中较为常见的语言,其能够简化网络自动化运维流程,提升其运维质量与水平。操作系统整体技术水平的高低,体现在Python技术下网络自动化运维方面。因此,应当通过加强Python的技术研发水平、推进Python网络自动化运维技术创新,来推进我国网络自动化运维水平。
在传统网络运维背景下,实行以人为主要媒介的工作形式,其往往需要网络运维员进行大量重复的网络运维工作,以手工形式管理硬件、软件资源,如人工执行配置命令、现场解决网络设备故障等,这种旧的网络管理操作流程较长,消耗成本较高,且容易出现各种人为失误。随着网络协议相关技术的不断更新,面对成千上万的设备升级、配置变更等问题,其亟待新的技术来适应新时代下的网络运维工作。Python拥有优雅的语法、与网络自动化运维相匹配的模块、开源运维工具(如Celery、ansible等),其能够解决网络自动化运维中出现的各种问题,促使网络自动化运维朝着轻量、高效、便捷发展。
在DevOps逐渐成为互联网行业流行体系的背景下,行业发展与业务流程对网络运维提出了更高要求。面对中小型企业大量的网络设备,如果仍沿用传统一对多的方式进行网络设备维护,已经不再是正确、高效的方式,不但容易因为人为失误造成各种网络管理错误,而且会浪费大量管理与人力成本。因此,从DevOps理念中汲取灵感,利用自动化工具与程序化脚本对网络设备实现批量管理,支持无数小型服务的应用环境,无疑是一个较好的解决之策。自动化工具是DevOps理念落地的前提,就可用操作、模块和界面而言,Python在网络自动化运维有着较好的优势,提供了诸如Paramiko、Netmiko、TextFSM等模块库,在代码语言上较为简洁与高效,拥有通信内容很难被解密、支持各种不同的设备厂商、设备自动发现、丰富的第三方库等优势,如使用Netaddr处理IP地址和网络、利用Jinja2模板加载配置、调用其他语言所写的代码等,能够简化任何规模的基础网络设备设施,在网络设备与自动化工具平台之间搭建一个低层次的网络接口,实现网络运维的自动化与高效化。
对于大型网络维护环境而言,运用Python语言编写自动化命令脚本,能够实现对远程网络设备的批量管理,提升网络管理的效率;此外,Python语言也可以与其他信息相结合,对网络环境的数据信息管理、系统防护系统进行升级,提升网络运维的标准化程度。具体而言,一方面实现对网络环境的系统保护。在当前视数据信息为财富的背景下,学校、企事业单位等都需要借助网络进行数据信息传输,这就为数据信息泄露提供了机会,容易产生诸多信息安全问题。凭借着强大的第三方编程模块支撑,Python既可以运用自身的程序语言编写各种计算机安全软件,如Capy、Pcapy、Sulley等计算机系统保护软件,为网络运行保驾护航;同时也能够与其他软件协作,提升网络环境的安全性。另一方面,实现对网络的自主监控与批量操作。面对诸如网络环境配置、网络设备监控等大批量网络运维工作时,可以通过编写Python脚本并使其自动运行,将多台服务器互相连接起来,将固定运维工作方式以Python进行封装,进而来代替人工操作,实现互联网命令的自动检查与维护,实现主备系统一键切换。
Paramiko是一种开源Python模块,其具有高度的跨平台性,能够适用Linux、 MacOS X、Windows等操作平台,其通过运用SSH2提供的安全连接,能够以加密和认证的方式实现对远程服务器的批量化管控与自动化运维,如对fabric内部的远程管理。依据类的属性以及核心组件的性质,Paramiko模块可分为类似 Socke功能的Channel类和以加密会话为主要功能的Transport类,实现上传下载服务的SFTPClient类,以及实现对远程服务器运维和管理的SSHClient类。通常用于执行远程命令,比如对远程连接、认证等,二者与Linux的Sftp命令、SSH命令分别对应。
基于Python的网络自动化运维,可从运维程序的自动化、运维执行过程的自动化两个维度进度考量,主要对应Python的网络自动化运维的脚本设计。从运维程序自动化设计而言,首先应当对网络设备进行SSH部署,输入:
首先,面向操作系统较为单一。纵观当前基于Python的网络自动化运维发展情况,多在Linux操作系统上体现,而在Windows、Mac OS操作系统上应用与普及程度较少,造成Python技术在操作系统分布上存在一定的失衡。另一方面,Python网络自动化运维水平亟待提升。在当前数字化、智慧化发展的社会背景下,网络自动化运维出现了新的发展方向,而智能化、智慧化正是其发展的主要方向之一。比如说,可以将深度学习模型、智能算法与Python网络自动化运维相结合,利用机器学习、智慧技术等实现网络智能化运维,推进网络运维迈入高质量发展阶段。然而,当前Python下的网络自动化运维发展尚处于初级阶段。如通过编辑脚本来进行某种操作、通过编写Python语言来实现计算机网络自检自查等,但是关于如何修复网络运维中出现的新问题,又该如何使计算机像人一样进行思考以开展不同的运维任务,尚处于探索阶段。
针对Python技术下的网络自动化运维问题,应当加强Python网络自动化运维的理论与实践创新,采用问题导向原则,研究与探索对应的解决之道,结合业务实际开展技术革新,以推进Python技术下网络自动化运维水平的提升。一方面,应当加强Python的技术研发力度。对于Python网络自动化运维在Windows、MAC OS等操作系统应用较少的情况,可以以不同操作系统网络自动化运维为专项技术提升活动,针对不同操作系统网络运维需求与自身系统特点,来拓展Python语言在不同操作系统中网络自动化运维的应用场景。另一方面,推进Python网络自动化运维技术创新。因此,在网络自动化运维中,面对网络自动化运维师对未来网络运维场景的应用需求,如计算机自己编写脚本以应对始料未及的网络运维问题,赋予计算机人一样的思考方式,使其能够随着计算机网络运行状况而作出顺应性响应;要以Python语言为技术基础,以网络运维实际需求为依托,推进Python与深度学习、图像识别等领域先进技术的融合,打造服务于网络运维的Python网络自动化运维技术,摆脱技术对网络自动化运维的限制,推进网络自动化运维技术的提高。