阿凡达

欢迎返回网络自动化和编程性与思科OpenNX-OS.内前一柱子并查看CLI命令响应如何嵌入HTTPSPOST请求并使用代码生成特征

管理网络大规模自动化

网络规模管理需要统一一致模型驱动软件接口组合API数据模型向外部世界提供,并实现网络大规模自动化优选组合网络设备如开关和路由器,数据模型只是描述设备配置和状态的规范或模式博客NX-APIREST

OpenNX-OS内所有事物均受控对象

Cisco OpenNX-OS执行数据模型,NX-APIREST接口提供数据模型组织成由对象组成的层次树受控对象均表示Cisco Nexus9000开关所有配置特征安卓所有运维数据表示OpenNX-OS内的一切均为受控对象:VLAN或OpenNX-OS语言中的桥域为对象,VLAN是VLAN父对象等子对象的名称、操作状态和状态某些对象可写并可创建、修改和销毁,而有些对象只读,像风扇状态

NX-OS网络自动化1图1

数据管理引擎(DME)进程充当数据模型门守者北向接口方便数据模型交互作用,南向API后端进程和开关应用

单一事实源

DME持有数据模型中所有对象的层次树称管理信息树MIT是OpenNX-OS特征和元素配置和运行状态的唯一事实源组织方式如图01根全MITs对象通过特征名称和相对名称MIT中对象可独有识别和引用表示如果需要知道接口误差数,则无需发布CLI命令并剖析输出并提取你感兴趣的值直接读MIT控件匹配接口误差

exus9300v虚拟开关Vagran使用接口Ethernet1/33的例子中,该接口误差存储在一个叫做rXNoErrors的受控对象中完全DNMsys/intf/phys-[eth1/33]/dbgEtherStats.

查找dn对MO

或探索MIT并观察它组织方式曾启用NX-API特征前博客文章外加NX-API沙盒

Visore视觉表示MITVagrant搭建系统下链路 https://127.0.0.1:2223/visore.html并像图02通常Nexus切换设置中,它只需登录 https://Switch_management_IP_address/visore.html

NX-OS网络自动化2图2

默认时您可使用管理员密码登录Visore通过按下DN属性旁的绿 < > 箭头,你可以浏览MIT并熟悉所有MOs和编程方式

另一种发现更多NX-APIREST和MIT结构的选项是检查可用文档https://developer.cisco.com/site/cisco-nexus-nx-api-references/.

学习如何搭建nx-api调用

NX-API沙盒学习更多NX-APIREST和如何编译API调用并生成源码记住上个博客文章后, 即启动NX-API切换式NX-API沙盒自动启动并存取 httpss/127.0.0.1:2223链接可使用管理员密码登录与管理员用户名web接口

NX-APIREST选项

已探索NX-APICLI与沙盒接口接通, 下一步,让我们来看看NX-APIREST选项

优先确保右上角选择NXAPI-REST方法论下拉选项下一步,让我们使用NX-APIREST接口和NX-API沙盒接口执行基本开关配置配置一个新的VLAN,VLAN200命名TEST并分配虚拟切换前5Ethernet端口配置模式命令实现此目标

ivlan200
名测试
接口e1-1-5
开关接入vlan200

使用NX-APIREST后,NX-API沙盒接口需要再完成一步CLI命令需要转换成相应的MOs和MIT或DN正确路径确定按NX-API沙盒接口转换后再向开关发送API请求NX-API沙盒接口与图03相似

NX-OS网络自动化3图3

JSON应用API请求有效载荷新建VLAN并分配前5Ethernet接口

{    "topSystem": {      "children": [        {          "interfaceEntity": {            "children": [              {                "l1PhysIf": {                  "attributes": {                    "accessVlan": "vlan-200",                    "id": "eth1/5"                  }                }              },              {                "l1PhysIf": {                  "attributes": {                    "accessVlan": "vlan-200",                    "id": "eth1/1"                  }                }              },              {                "l1PhysIf": {                  "attributes": {                    "accessVlan": "vlan-200",                    "id": "eth1/3"                  }                }              },              {                "l1PhysIf": {                  "attributes": {                    "accessVlan": "vlan-200",                    "id": "eth1/2"                  }                }              },              {                "l1PhysIf": {                  "attributes": {                    "accessVlan": "vlan-200",                    "id": "eth1/4"                  }                }              }            ]          }        },        {          "bdEntity": {            "children": [              {                "l2BD": {                  "attributes": {                    "fabEncap": "vlan-200",                    "name": "TEST"                  }                }                          }                 ]          }        }      ]    }  }

切换回响应包含JSON键对值,并配有键名imdata和值内存操作错误代码请求处理成功时,imdata值为空数组表示没有错误

{imdata:}

验证开关运行配置,确认新VLAN实战成功创建,前5Ethernet接口分配到从图4可见的新VLAN

NX-OS网络自动化4图4

NX-APIREST文档可用

如前所述,显示命令不支持nx-APIREST为了通过NX-APIRET接口获取信息,你需要知道MO和DN使用它并执行GETAP调用求值代码生成选项NX-APIcli提供NX-APIREST

Python案例NX-APIREST生成代码除JSON有效载荷外还包含MOs和各自的DNs和值三大自解函数:

  • aalogin登录开关
  • aa_logout脱机
  • 发送 API 请求切换

自由探索Visore界面、NX-APIREST文档见httpss://developer.cisco.com和NX-API沙盒接口

挑战这次

难点是使用NX-APIREST接口和您最喜爱编程语言完全配置Cisconexus切换

批注部分通知我进度信息 并容你为Nexus开关建配置模板 可编程应用

留播下个博客文文文 我们将探索NX-SDK和如何创建自己的OpenNX-OSCLI命令


我们想听听你的想法问题或留言下文
并保持连接思科DevNet社会

微博@CiscoDevNet|脸书|LinkedIn

访问新开发者视频通道



作者类

阿凡达

阿德里安·伊利西乌

技术领袖

思科DevNet