Анализ конфигурации CISCO con/aux/vty с использованием TextFSMPython

Программы на Python
Anonymous
Анализ конфигурации CISCO con/aux/vty с использованием TextFSM

Сообщение Anonymous »

Я пытаюсь проанализировать конфигурацию консолей (con/aux/vty) маршрутизатора Cisco с помощью TextFSM, в частности, выходные данные команды show Running-config | частичная линия. Проблема возникает из-за того, что эта часть конфигурации не завершает «line vtys» знаком «!», как обычно, что вызывает проблему при попытке определить конец записи, не пропуская эту строку как начало следующей.
Я ожидал извлечь следующие данные в структурированном формате:
"LINE_TYPE": con/aux/vty
"LINE_NUM": число
"ACCESS_CLASS": число
"EXEC_TIMEOUT": число
"LOGIN_AUTHENTICATION": строка
"STOPBITS": число
Пример вывода команды:
line con 0
exec-timeout 0 0
login authentication autCON
stopbits 1
!
line aux 0
stopbits 1
login authentication autAUX
line vty 0 4
exec-timeout 1 0
login authentication autAAA
line vty 5 15
exec-timeout 2 0
login authentication autBBB
password yourmom
line vty 16
access-class 55 in vrf-also
exec-timeout 3 0
login authentication autCCC
!

Я протестировал следующий шаблон (среди сотен других испытаний!), но он не выровнен. Это можно наблюдать в строках LINE_TYPE и LOGIN_AUTHENTICATION результата, который я прикрепил в конце:
Файл TextFSM
Value Required LINE_TYPE (\S+)
Value LINE_NUM (\S.*)
Value EXEC_TIMEOUT (\d+ \d+|\S+)
Value STOPBITS (\d+)
Value TRANSPORT (\S+)
Value AUTHORIZATION (\S+)
Value ACCOUNTING_CONNECTION (\S.*)
Value ACCOUNTING_EXEC (\S+)
Value LOGIN_AUTHENTICATION (\S+)
Value HISTORY_SIZE (\d+)
Value ACCESS_CLASS (\S+.*)

Start
^line ${LINE_TYPE} ${LINE_NUM} -> Continue.Record
^\s*exec-timeout ${EXEC_TIMEOUT}*
^\s*stopbits ${STOPBITS}*
^\s*transport input ${TRANSPORT}*
^\s*authorization exec ${AUTHORIZATION}*
^\s*accounting connection ${ACCOUNTING_CONNECTION}*
^\s*accounting exec ${ACCOUNTING_EXEC}*
^\s*login authentication ${LOGIN_AUTHENTICATION}*
^\s*history size ${HISTORY_SIZE}*
^\s*access-class ${ACCESS_CLASS}*
^\Z -> Record


Результат
[
{
"ACCESS_CLASS": "",
"ACCOUNTING_CONNECTION": "",
"ACCOUNTING_EXEC": "",
"AUTHORIZATION": "",
"EXEC_TIMEOUT": "",
"HISTORY_SIZE": "",
"LINE_NUM": "0",
"LINE_TYPE": "con",
"LOGIN_AUTHENTICATION": "",
"STOPBITS": "",
"TRANSPORT": ""
},
{
"ACCESS_CLASS": "",
"ACCOUNTING_CONNECTION": "",
"ACCOUNTING_EXEC": "",
"AUTHORIZATION": "",
"EXEC_TIMEOUT": "0 0",
"HISTORY_SIZE": "",
"LINE_NUM": "0",
"LINE_TYPE": "aux",
"LOGIN_AUTHENTICATION": "autCON",
"STOPBITS": "1",
"TRANSPORT": ""
},
{
"ACCESS_CLASS": "",
"ACCOUNTING_CONNECTION": "",
"ACCOUNTING_EXEC": "",
"AUTHORIZATION": "",
"EXEC_TIMEOUT": "",
"HISTORY_SIZE": "",
"LINE_NUM": "0 4",
"LINE_TYPE": "vty",
"LOGIN_AUTHENTICATION": "autAUX",
"STOPBITS": "1",
"TRANSPORT": ""
},
{
"ACCESS_CLASS": "",
"ACCOUNTING_CONNECTION": "",
"ACCOUNTING_EXEC": "",
"AUTHORIZATION": "",
"EXEC_TIMEOUT": "1 0",
"HISTORY_SIZE": "",
"LINE_NUM": "5 15",
"LINE_TYPE": "vty",
"LOGIN_AUTHENTICATION": "autAAA",
"STOPBITS": "",
"TRANSPORT": ""
},
{
"ACCESS_CLASS": "",
"ACCOUNTING_CONNECTION": "",
"ACCOUNTING_EXEC": "",
"AUTHORIZATION": "",
"EXEC_TIMEOUT": "2 0",
"HISTORY_SIZE": "",
"LINE_NUM": "16",
"LINE_TYPE": "vty",
"LOGIN_AUTHENTICATION": "autBBB",
"STOPBITS": "",
"TRANSPORT": ""
}
]



Подробнее здесь: https://stackoverflow.com/questions/773 ... ng-textfsm

Вернуться в «Python»