我安装了 NAPALM,并努力一次从单个设备获取事实。但是我让事情变得有点不同,现在我正在尝试使用嵌套字典连接到我的设备,但我收到了一个错误。
import napalm
from napalm_ros import ros
database_devices={
"cisco":{
"hostname":"152.0.0.2",
"type":"ios",
"username":"cisco",
"password":"cisco",
"optional_args":{"secret" : "cisco"}
},
"mikrotik":{
"hostname":"152.0.0.2",
"type":"ros",
"username":"mikrotik",
"password":"mikrotik",
"optional_args":{"port" : "8728 "}
}
}
for key,values in database_devices.items():
print("Connecting to " + key)
driver=napalm.get_network_driver(values.get("type",{}))
device=driver(
hostname=values.get("hostname",{})
username=values.get("username",{})
password=values.get("password"),{})
optional_args=values.get("optional_args",{})
device.open()
我试图在 device=driver 中的设备之间添加逗号,但我也无法连接。而且我认为当我可以解决这个问题时,我会遇到另一个问题,我的 optional_args 值在 cisco 和 mikrotik 中是不同的,在 cisco 中,我的可选 arg 是我的启用密码,在 mikrotik 中是一个端口。我如何将这些值放入我的 for ? 谢谢你的帮助。