Netmiko-配置Juniper交换机时出现SSH异常错误



我正在尝试以下简单的python代码,并得到以下错误,我不确定为什么会得到错误。任何帮助都将不胜感激:

Python 3.8.10(默认,2021年11月26日20:14:08([GCC 9.3.0]在linux上类型";"帮助"版权"学分";或";许可证";了解更多信息。

>>> from netmiko import juniper
>>> from netmiko import ConnectHandler
>>> from netmiko import file_transfer
>>> from netmiko import pprint
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'pprint' from 'netmiko' (/usr/local/lib/python3.8/dist-packages/netmiko/__init__.py)
>>> from pprint import pprint
>>> 
>>> 
>>> ptxrtr = {
... 'device_type': 'juniper_junos',
... 'ip': '192.168.50.11',
... 'username': 'test',
... 'password': 'abc123'
... }
>>> ptx = ConnectHandler(**ptxrtr)
>>> ptx.is_alive()
True
>>> ptx.send_config_set('set interfaces lo1 description netmiko_config_change_test2')
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/paramiko/channel.py", line 699, in recv
out = self.in_buffer.read(nbytes, self.timeout)
File "/usr/local/lib/python3.8/dist-packages/paramiko/buffered_pipe.py", line 164, in read
raise PipeTimeout()
paramiko.buffered_pipe.PipeTimeout
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py", line 569, in _read_channel_expect
new_data = self.remote_conn.recv(MAX_BUFFER)
File "/usr/local/lib/python3.8/dist-packages/paramiko/channel.py", line 701, in recv
raise socket.timeout()
socket.timeout
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py", line 1875, in send_config_set
new_output = self.read_until_pattern(pattern=re.escape(cmd.strip()))
File "/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py", line 651, in read_until_pattern
return self._read_channel_expect(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/netmiko/base_connection.py", line 579, in _read_channel_expect
raise NetmikoTimeoutException(
netmiko.ssh_exception.NetmikoTimeoutException: Timed-out reading channel, data not available.
>>> 

我对您的代码进行了一些编辑。您可以根据您连接的设备的用户名/密码和接口结构编辑以下代码。

from netmiko import juniper
from netmiko import ConnectHandler
# Establish a connection to the router
juniper = {
'device_type': 'juniper',
'host':   'device_IP',
'username': 'username',
'password': 'password',
'port' : 22,
}
net_connect = ConnectHandler(**juniper)
# Edit the candidate configuration
config_commands = ['set interfaces lo0 unit 0 description netmiko_config_change_test2']
output = net_connect.send_config_set(config_commands, exit_config_mode=False)
print(output)
# Commit the config changes
output = net_connect.commit()
print(output)
output = net_connect.send_command('show interfaces lo0 unit 0 description')
print(output)
net_connect.disconnect()

样本输出

configure 
Entering configuration mode
Users currently editing the configuration:
lab terminal p0 (pid 77840) on since 2022-08-25 21:01:02 UTC, idle 00:01:13
{master:0}[edit]
{master:0}[edit]
lab@leaf3-qfx# set interfaces lo0 unit 0 description netmiko_config_change_test2 
{master:0}[edit]
lab@leaf3-qfx# 
commit
configuration check succeeds
commit complete
{master:0}[edit]
lab@leaf3-qfx# 
description netmiko_config_change_test2;

最新更新