Comments 15
Интересная статья.
К сожалению, подобным функционалом не пытался заняться, но писал нечто подобное для автоконфигурирования SIP-шлюзов.
В частности, была задача по миграции большого (4500 устройств) количества оборудования с одного SIP сервера на другой. В итоге пришлось писать целую программу (хотя понимаю, что можно было обойтись и скриптами на том же Perl) на Delphi (вот только не нужно холивара типа «C/C++ круче!» — писал на том, чем владею. В итоге экономилось громадное количество времени.
Для сравнения: Чтобы перенастроить один шлюз руками, требовалось 2-3 минуты. Параллельно можно делать по 2-4 шлюза в зависимости от внимательности, иногда больше.
Программа легко справлялась с 20-32 шлюзами одновременно, настраивая их, и перезапуская.
Итог: За ночь спокойно переносилось 200-300 устройств (больше не давала необходимость перестраховаться, хотя в один день получилось около 500 штук перегнать).
К сожалению, подобным функционалом не пытался заняться, но писал нечто подобное для автоконфигурирования SIP-шлюзов.
В частности, была задача по миграции большого (4500 устройств) количества оборудования с одного SIP сервера на другой. В итоге пришлось писать целую программу (хотя понимаю, что можно было обойтись и скриптами на том же Perl) на Delphi (вот только не нужно холивара типа «C/C++ круче!» — писал на том, чем владею. В итоге экономилось громадное количество времени.
Для сравнения: Чтобы перенастроить один шлюз руками, требовалось 2-3 минуты. Параллельно можно делать по 2-4 шлюза в зависимости от внимательности, иногда больше.
Программа легко справлялась с 20-32 шлюзами одновременно, настраивая их, и перезапуская.
Итог: За ночь спокойно переносилось 200-300 устройств (больше не давала необходимость перестраховаться, хотя в один день получилось около 500 штук перегнать).
0
А почему пароли а не ключи. ssh?
+1
Лучше спросить почему telnet, а не ssh для начала. Но видимо далеко не все устройства их понимают, а здесь важна универсальность. + возможно внутренняя политика компании.
+1
Откройте для себя rancid. Да и вообще сетевым инженерам не пристало под виндой работать.
-1
Rancid — оно же для грабления конфигов? А не для распуливания изменения конфигов по сети.
0
Спаисбо за наводку ))
По поводу винды согласен, но… корпоративная политика. Из линукса я, например, просто никуда не попаду. т.к. попать в DMZ можно только через виндовую проксю. а ISA-клиента под линукс нет, +домен корпоративный, со всеми вытекающими.
По поводу винды согласен, но… корпоративная политика. Из линукса я, например, просто никуда не попаду. т.к. попать в DMZ можно только через виндовую проксю. а ISA-клиента под линукс нет, +домен корпоративный, со всеми вытекающими.
0
Попробуйте использовать вот эту библиотеку для ваших целей github.com/knipknap/exscript/wiki
Возможно вам понравится.
Возможно вам понравится.
0
Спаисбо. Чуть чуть «утащил» из вашего скрипта себе.
Сам написал похожий скрипт, но для других целей. Поделюсь своими наблюдениями:
У всех железок отличается строка приветствия, и я ориентируюсь по ней что бы логиниться (не перебирать логины а сразу вводить нужный).
Еще могу порекомендовать использовать case вместо кучи if-ов, и нагляднее и проще.
Сам написал похожий скрипт, но для других целей. Поделюсь своими наблюдениями:
У всех железок отличается строка приветствия, и я ориентируюсь по ней что бы логиниться (не перебирать логины а сразу вводить нужный).
Еще могу порекомендовать использовать case вместо кучи if-ов, и нагляднее и проще.
vbscript
promt = crt.Screen.ReadString("Username", "User name", "UserName", "DES-1210", "login:", "Login:", 3)
Select Case crt.Screen.MatchIndex
Case 0
'Не знакомая строка приветствия или таймаут.
'MsgBox "Where am I? O_o"
Case 1,4
'оборудование с TACACS+
promt = crt.Screen.ReadString(":3#", ">", ":4#", ":5#", "user#", "admin#", "#", 3)
Select Case crt.Screen.MatchIndex
Case 0
'не знакомая строка приветствия. запрос команды enable
Case 1
'мы на dlink-e
Case 2
'мы на cisco
Case 3,4
'уже админ
Case 5
'Dlink DGS или 3200
Case 6
'Dlink DGS уже админ
Case 7
'либо мы на cisco и уже enable либо это гюк
End Select
Case 2
'оборудование zyxel
Case 3
'оборудование не настроено либо acacs+ гючит
Case 5
'DSLAM, SNR
promt = crt.Screen.ReadString("Password", "pass", 1)
Select Case crt.Screen.MatchIndex
Case 0
'Непонятно что
Case 1
'SNR
Case 2
'DSLAM
End Select
Case 6
'Raisecom
End Select
0
Абсолютно с вами согласен. Case намного удобней, но о нем я узнал где-то в конце написания своего скрипта и посчитал совершенно нецелесообразным рефакторить ради просто красотульки. А в будущем, конечно, буду пользоваться им.
По поводу строки приветсвия — у меня разные логины могут быть на одной и той же железке, т.ч. от перебора в моем случае не деться.
Рад, что вам оказалась полезна часть моей работы.
По поводу строки приветсвия — у меня разные логины могут быть на одной и той же железке, т.ч. от перебора в моем случае не деться.
Рад, что вам оказалась полезна часть моей работы.
+1
Sign up to leave a comment.
Лучше день потерять, а потом телепортироваться куда хочешь и сколько хочешь