1. OPS原理
- OPS 基于华为公司通用路由平台 VRP ( Versatile Routing Platform)开发,通过开放的RESTful API接口与VRP系统的管理平面、控制平面、数据平面的模块进行交互,实现对设备整体功能的扩展。
- OPS通过开放管理对象来开放设备,管理对象使用URI(Uniform Resource Identifier)进行唯一的标识。客户端可以通过标准的HTTP方法对对象进行操作,如GET、PUT、POST、DELETE。
- VRP系统是华为公司多年研究和网络应用经验的成果,知识产权为华为公司所有的一种网络操作系统。管理对象:网络设备中开放出来的,可以被Restful API接口进行调用的对象,如CPU信息,系统信息,接口信息等。
- URI(Uniform Resource Identifier):统一资源标识符,用于标识一个特定的资源, OPS中使用URI标识管理对象。如CPU信息的URI为/devm/cpuInfos/cpuInfo,其唯一地标识了CPU信息这个管理对象。
- URL(Uniform resource locator):统一资源定位符,URL是一种URI,可以用来表示一个资源,而且还指明了如何定位这个资源,如http://www.ietf.org/rfc/rfc2396.txt, ftp://ftp.is.co.za/rfc/rfc1808.txt。
- 目前华为网络设备OPS功能集成了Python语言的运行环境,可以运行Python脚本。 Java,C/C++语言运行环境当前版本暂未实现,待扩展。
RESTful API介绍
REST(Representational State Transfer,表现层状态转移):一种软件架构风格。其设计概念和准则为:
- 网络上的所有事物都可被抽象为资源。
- 每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识。
- 使用标准方法操作资源,核心操作为HTTP规范定义的GET,PUT,POST,DELETE。
- 所有的操作都是无状态的。
RESTful API:符合REST架构风格的API。
- API(Application Programming Interface,应用编程接口):指应用程序之间为了保证互相通讯所提供的一系列特殊规则和要求。
- 获取更多Restful相关知识可学习HCIP-编程与自动化课程《RESTful原理与实践》。
- OPS定义了一套RESTful API,并使用URI标识开放的管理对象。用户可以通过标准的HTTP方法(GET、PUT、POST和DELETE)访问管理对象。
OPS RESTful API交互示例
有了OPS定义的RESTful API,用户就可以通过编写Python脚本,发送HTTP请求对网络设备的管理对象进行操作,网络设备则会根据操作的执行结果返回HTTP响应消息。
OPS功能是用户编写python脚本,将脚本安装到网络设备,脚本运行时发送HTTP请求,来实现对网络设备的管理。
用户发送的HTTP请求需要按照OPS定义的RESTful API进行构造。获取系统信息API描述如下。
• OPS RESTful API请求报文与响应报文格式与上图片中的HTTP请求报文与响应报文格式类似。
• XML(Extensible Markup Language,可扩展标记语言),被设计用来传输和存储数据。
• 目前,OPS RESTful API只支持采用XML格式传输数据,未来的版本会支持JSON
(JavaScript Object Notation)格式。所以,目前OPS Restful API请求报文和响应报文的主体部分都是XML格式。
• 《RESTful API参考》可在华为support网站http://support.huawei.com的对应网络设备页面进行下载。
目前,华为OPS RESTful API只支持在ERE(Embedded Running Environment,内嵌运行环境)中调用。网络设备系统中集成了Python语言运行环境,用户根据OPS API编写Python脚本,并将其安装到设备系统中, Python脚本运行时,通过向系统发送HTTP请求,来实现对设备的管理。
2. OPS应用场景
- DHCP服务器:用来为自动部署的网络设备分配临时管理IP地置文址、缺省网关、脚本文件服务器地址等信息。
- DHCP中继:当需要自动部署的网络设备与DHCP服务器位于不同网段时,需要通过DHCP中继转发DHCP交互报文。
- 脚本文件服务器:用来保存网络设备自动部署时需要的脚本文件(Python脚本)。通过运行脚本文件,网络设备可以获取软件和配置文件服务器地址、版本文件、配置文件等信息。
- 软件和配置文件服务器:用来保存网络设备自动部署需要的系统软件、配件、补丁文件。
场景2:实现自动检查设备健康状态
通常情况下,对设备的健康状态进行检查时,用户需要登录设备并执行多条命令行,以查看设备的硬件、业务运行状态。
通过OPS功能,设备可以自动执行这些健康检查命令,定时收集执行结果并将其发送至服务器以供分析,减少维护工作量。因为这些命令是通过安装在网络设备系统中的Python脚本下发的,而不是用户通过网络远程下发的,因此也不需要担心网络不通的问题。
通过编写python脚本,可以实现下发命令,当网络不通时,将执行结果暂存在设备,等网络恢复再传输到Server的功能。因此,可以消减网络不通带来的影响。
场景3:实现自动备份配置文件
网络设备通过维护助手订阅配置文件保存事件,当配置被保存后,设备自动运行Python脚本,将配置文件发送至服务器进行备份,以减少手工备份的工作量。
3. OPS配置实践
配置思路
OPS的配置思路如下。其中最重要的是编写Python脚本,后面会详细介绍。之后的三个步骤较简单,操作方式和所涉及命令已在下图标注,不再详细展开。
Python脚本编写 (1)
Python脚本的作用是向系统下发HTTP请求,来实现对系统的管理。华为公司提供了Python脚本模板,用户只需根据要实现的功能查找相应RESTful API,并对部分代码做相应修改即可。
Python脚本模板示例: