解决方案(仍然使用ssh作为访问方式)
使用napalm时,对于Cisco Nexus设备,默认采用的是443的api去访问获取数据,如果需要使用ssh的方式获取,需要特别指定get_network_driver('nxos_ssh')
使用443 https api的方式
在nexus上启用nxapi
(config)# feature nxapi
2025 Feb 4 07:47:29 test7_cisco_nxos %$ VDC-1 %$ %SECURITYD-2-FEATURE_NXAPI_ENABLE: Feature nxapi is being enabled on HTTPS.
接着再正常的使用napalm即可
python">import napalm
driver = napalm.get_network_driver('nxos')
device=driver(hostname='x.x.x.x',username='xxx',password='xxx')
device.open()
output=device.get_facts()
pprint(output)
结果
{'fqdn': 'xxxx','hostname': 'xxx','interface_list': ['mgmt0','Ethernet1/1','Ethernet1/2','Ethernet1/3','Ethernet1/4','Ethernet1/5','Ethernet1/6','Ethernet1/7','Ethernet1/8','Ethernet1/9','Ethernet1/10','Ethernet1/11','Ethernet1/12','Ethernet1/13','Ethernet1/14','Ethernet1/15','Ethernet1/16','Ethernet1/17','Ethernet1/18','Ethernet1/19','Ethernet1/20','Ethernet1/21','Ethernet1/22','Ethernet1/23','Ethernet1/24','Ethernet1/25','Ethernet1/26','Ethernet1/27','Ethernet1/28','Ethernet1/29','Ethernet1/30','Ethernet1/31','Ethernet1/32','Ethernet1/33','Ethernet1/34','Ethernet1/35','Ethernet1/36','Ethernet1/37','Ethernet1/38','Ethernet1/39','Ethernet1/40','Ethernet1/41','Ethernet1/42','Ethernet1/43','Ethernet1/44','Ethernet1/45','Ethernet1/46','Ethernet1/47','Ethernet1/48','Ethernet1/49','Ethernet1/50','Ethernet1/51','Ethernet1/52','Ethernet1/53','Ethernet1/54','Ethernet1/55','Ethernet1/56','Ethernet1/57','Ethernet1/58','Ethernet1/59','Ethernet1/60','Ethernet1/61','Ethernet1/62','Ethernet1/63','Ethernet1/64','loopback1','Vlan1'],'model': 'Nexus9000 C9300v Chassis','os_version': '9.3(8)','serial_number': 'xxx','uptime': 13143.0,'vendor': 'Cisco'}