Передача Ctrl-Y переключателю Avaya с помощью netmiko

Я пытаюсь автоматизировать получение информации о коммутаторе (config, mac-address-table, lldp info) из Avaya ERS 5000 с использованием python и netmiko.

При открытии сеанса SSH с коммутатором Avaya требует, чтобы вы нажали Ctrl-Y, чтобы перейти в текстовое меню, а затем введите другую клавишу (c), чтобы перейти к CLI.

Я пробовал следующий код ниже, который приводит к исключению тайм-аута. Когда я убираю попытку / исключение, я вижу следующий вывод.

Насколько я могу судить, вставив операторы print() в разных местах, сеанс устанавливается, а затем время ожидания.

Есть ли дополнительная информация, которую я могу извлечь из исключения netmiko, которая будет освещать, где происходит этот процесс?

Я сразу признаю, что кодирование и я очень недавние знакомые, и я могу упустить очевидное.

-------------------------------------------------------------------------------
Connecting to switch
Traceback (most recent call last):
  File "./netmiko-test4.py", line 24, in <module>
    ssh_connection = netmiko.ConnectHandler(**avaya5000_ers)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netmiko/ssh_dispatcher.py", line 100, in ConnectHandler
    return ConnectionClass(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netmiko/base_connection.py", line 144, in __init__
    self.establish_connection()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netmiko/base_connection.py", line 525, in establish_connection
    raise NetMikoTimeoutException("Timed out waiting for data")
netmiko.ssh_exception.NetMikoTimeoutException: Timed out waiting for data

<< ---- начало фрагмента кода ---- >>

from __future__ import unicode_literals
import netmiko

# Avaya presents Enter Ctrl-Y to begin.
CTRL_Y = '\x19'

avaya5000_ers = {
    'device_type': 'avaya_ers',
    'ip':   'a.b.c.d',  #ip obscured for posting
    'username': 'user1',
    'password': 'password',
}

try:
    ssh_connection = netmiko.ConnectHandler(**avaya5000_ers)
    ssh_connection.write_channel(CTRL_Y)
    ssh_connection.send_command('c')
    print(ssh_connection.send_command('show clock')) #a test command  
    ssh_connection.disconnect()   
except netmiko.ssh_exception.NetMikoTimeoutException:
    print("timed out")

1 ответ

Очевидно, здесь нужно указать на переключателе настройку конфигурации «баннер отключен» - если она у вас не установлена ​​по юридическим причинам.

Другие вопросы по тегам