admin管理员组

文章数量:1318795

NX

来源:
了解更多:/

概观

  • 在Cisco Nexus设备中,最常用的配置方法是使用仅在设备上运行的命令行界面(CLI),该方法具有局限性。思科提供NX-API REST:
    • 提供交换机外部可用的特定CLI。
    • 将配置操作组合到相对较少的HTTP/HTTPS操作中。
    • 使用POST作为传递方法。
  • NX-API REST不仅支持show命令、基本和高级交换机配置,还可以运行Linux Bash命令。
  • 在后端,NX-API REST使用Nginx HTTP服务器。可以指示Nginx服务器以XML或JSON格式返回所请求的数据。

步骤1.启用NX-API功能

  • 使用NX-API接口之前,必须在Cisco Nexus交换机上启用nxapi功能。
    • 具体办法:

步骤2.从NX-API Developer Sandbox进行REST API调用

地址:
admin / Admin_1234!

步骤3.使用POSTMAN进行NX-API REST调用

  • 便于进行分解动作,调试。
  1. 拿token
    POST:.json
    body中:
       {"aaaUser": {"attributes": {"name": "admin","pwd": "Admin_1234!"}}
    }
    

2.添加一个loopback接口来管理、更新路由器。

  • [lo30].json
    • lb-[lo30].json表示它是一个环回接口,其中30设置为虚拟接口号。
  • GET,再POST
 {"l3LbRtdIf" : {"attributes" : {"descr": "My Learning Lab Loopback"}}}

步骤4.使用Python与NX-OS交互

  • 以下Python代码获取系统信息,并以漂亮的格式打印出主机名,序列号,正常运行时间和当前设备状态
  • ~\nxos-code\intro-nxapi\get_sys_info.py
import requests, urllib3# Disable Self-Signed Cert warning for demo
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)# Assign requests.Session instance to session variable
session = requests.Session()# Define URL and PAYLOAD variables
URL = ".json"
PAYLOAD = {"aaaUser": {"attributes": {"name": "admin","pwd": "Admin_1234!"}}}# Obtain an authentication cookie
session.post(URL,json=PAYLOAD,verify=False)# Define SYS_URL variable
SYS_URL = ".json"# Obtain system information by making session.get call
# then convert it to JSON format then filter to system attributes
sys_info = session.get(SYS_URL,verify=False).json()["imdata"][0]["topSystem"]["attributes"]# Print hostname, serial nmber, uptime and current state information
# obtained from the NXOSv9k
print("HOSTNAME:", sys_info["name"])
print("SERIAL NUMBER:", sys_info["serial"])
print("UPTIME:", sys_info["systemUpTime"])
  • 输入以下命令运行脚本
$ python get_sys_info.py
HOSTNAME: NXOSv9k-REST-API
SERIAL NUMBER: 9CNCP82CNY5
UPTIME: 01:16:13:49.000
CURRENT STATE: out-of-service
$

本文标签: NX