欢迎返回网络自动化和编程性与思科OpenNX-OS.内前一柱子并查看CLI命令响应如何嵌入HTTPSPOST请求并使用代码生成特征
管理网络大规模自动化
网络规模管理需要统一一致模型驱动软件接口组合API数据模型向外部世界提供,并实现网络大规模自动化优选组合网络设备如开关和路由器,数据模型只是描述设备配置和状态的规范或模式博客NX-APIREST
OpenNX-OS内所有事物均受控对象
Cisco OpenNX-OS执行数据模型,NX-APIREST接口提供数据模型组织成由对象组成的层次树受控对象均表示Cisco Nexus9000开关所有配置特征安卓所有运维数据表示OpenNX-OS内的一切均为受控对象:VLAN或OpenNX-OS语言中的桥域为对象,VLAN是VLAN父对象等子对象的名称、操作状态和状态某些对象可写并可创建、修改和销毁,而有些对象只读,像风扇状态
图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
图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相似
图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
图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社会
访问新开发者视频通道
连接CISCO