拓扑完善

先对拓扑等进行设置(连好对应的线),注意:在连线之前务必关闭要相互连接的设备。
通 过html5 console登录方式进行登录,这样就可以直接双击交换机或者vpc进入对应的设备命令窗口。
EVE 华三镜像 eve添加华为的镜像_python

交换机设置dhcp ip地址

EVE 华三镜像 eve添加华为的镜像_json_02
这时候,我们在对应的电脑上就可以ping通我们的交换机了。
EVE 华三镜像 eve添加华为的镜像_html5_03

cli和API接口测试

cli命令方式(获取交换机设备信息)

使用这种方式之前一定要在交换机中对 nxapi 进行开启。
命令

feature nxapi   //如果输入两次一样的就是关闭了
nxapi http port 80 

在交换机中查看nxapi的状态
EVE 华三镜像 eve添加华为的镜像_python_04
在浏览器界面打开n9k 交换机沙盒,直接输入 http://172.17.170.218
EVE 华三镜像 eve添加华为的镜像_html5_05
根据参考文档,可以使用python脚本进行编写测试。我是在windows上进行测试的,对应的要安装json和request的库,另外python的环境变量要注意加入…script/路径,它下面包含了pip,安装requests需要使用,一般安装python就会自带有,不需要另外安装。


import json
import requests

"""
Modify these please
"""
url='http://172.17.170.218/ins'
switchuser='admin'
switchpassword='admin'

myheaders={'content-type':'application/json'}
payload={
  "ins_api":{
  "version": "1.0",
  "type": "cli_show",
  "chunk": "0",
  "sid": "1",
  "input": "show ip interface mgmt 0",
  "output_format": "json"
  }
}


response = requests.post(url,data=json.dumps(payload), headers=myheaders,auth=(switchuser,switchpassword)).json()
output = json.dumps(response, indent=4, sort_keys=True)
print(output)


测试结果:
EVE 华三镜像 eve添加华为的镜像_html5_06
这是用cli的方式。

使用交换机 api方式 获取数据

参考链接
这种方式的话,必须要先进行认证(没有为什么。。。)。
认证方式就是生成一个对应的token。
主要的操作就是以下的json数据,然后post提交到交换机内部的对应地址(ip为交换机ip)
EVE 华三镜像 eve添加华为的镜像_json_07
生成完token后,就可以根据参考链接文档中给出的api接口进行测试了。
文档接口示例

POST http://<mgmt0_IP>/api/mo/sys/intf.json
{
  "interfaceEntity": {
    "children": [
      {
        "l1PhysIf": {
          "attributes": {
            "id": "eth1/2",
            "mode": "trunk",
            "trunkVlans": "15-20"
          }
        }
      }
    ]
  }
}
Response
{
    imdata:[]
}

在postman中进行测试,
EVE 华三镜像 eve添加华为的镜像_json_08
重新生成token,再进行接口的测试(注意:http服务和https服务只能开一个,也就是说,如果开了http的话,生成token的访问地址需要直接变成http开头了)。
EVE 华三镜像 eve添加华为的镜像_其他_09

比较两者方式,个人认为cli命令访问方式是比较好用的,只需要改变input中的命令即可获得不同的结果,而且其他部分的代码不需要改动,另外url地址也是不变动的;而api方式的话,每次的URL地址不一定相同不说,它对应的请求payload内容也不一定是一样,改变大。