实验四:OPS实验

本文介绍了华为的OPS(Open Programmability System)实验,OPS允许用户利用RESTful API进行网络设备的开放编程,实现自动化运维和业务扩展。实验包括设备预配、运维代码编写及代码安装运行。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

传统网络设备是一个封闭系统,提供的功能和服务都是固定的,不具有动态性和灵活性。随着网络的迅猛发展和不断普及,多样化、差异化的需求层出不穷,传统网络设备难以满足这些需求。部分用户要求设备提供不同层次的开放性,便于开发一些自定义的功能,部署一些私有的管理策略,实现自动化运维等功能,以降低管理成本。
华为公司推出OPS(Open Programmability System,开放可编程系统),提供网络设备的开放可编程能力,赋予用户二次开发的能力,充分释放设备潜力。


一、OPS

华为公司推出OPS,提供网络设备的开放可编程能力。
OPS允许用户或第三方开发商利用系统开放的RESTful API,开发和部署自己的网络管理策略,从而迅速地实现业务功能扩展、自动部署和设备的智能化管理,降低运维成本和操作的复杂度。
在这里插入图片描述


二、OPS原理

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++语言运行环境当前版本暂未实现,待扩展。

2.RESTful API

REST(Representational State Transfer,表现层状态转移):一种软件架构风格。其设计概念和准则为:
网络上的所有事物都可被抽象为资源。
每一个资源都有唯一的资源标识,对资源的操作不会改变这些标识。
使用标准方法操作资源,核心操作为HTTP规范定义的GET,PUT,POST,DELETE。
所有的操作都是无状态的。
RESTful API:符合REST架构风格的API。
OPS定义了一套RESTful API,并使用URI标识开放的管理对象。用户可以通过标准的HTTP方法(GET、PUT、POST和DELETE)访问管理对象。
在这里插入图片描述
OPS功能是用户编写python脚本,将脚本安装到网络设备,脚本运行时发送HTTP请求,来实现对网络设备的管理。

三、实验步骤

在这里插入图片描述

1.完成设备预配

2.编写运维代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import traceback
import httplib
# import http.client
# python3中相较于python2,httplib被替换成为http.client,所以在Pycharm中Python3环境下编写代码导入httplib后,会存在报错;但是在该网络设备下,代码需要按照python2版本导入httplib
import string


# 定义调用RESTful API的类,该类中定义了一些方法来执行建立HTTP连接时的操作。该部分无需修改,用户可以直接使用。
# 该部分可以直接调用,用户不需要修改。
class OPSConnection(object):
    """Make an OPS connection instance."""

    # 初始化类,创建一个HTTP连接。
    def __init__(self, host, port=80):
        self.host = host
        self.port = port
        self.headers = {
   
            "Content-type": "text/xml",
            "Accept": "text/xml"
        }
        self.conn = None

    # 关闭HTTP连接。
    def close(self):
        """Close the connection"""
        self.conn.close()

    # 创建设备资源操作。
    def create(self, uri, req_data):
        """Create operation"""
        ret = self.rest_call("POST", uri, req_data)
        return ret

    # 删除设备资源操作。
    def delete(self, uri, req_data):
        """Delete operation"""
        ret = self.rest_call("DELETE", uri, req_data)
        return ret

    # 查询设备资源操作。
    def get(self, uri, req_data=None
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值