Pull to refresh

Comments 15

Интересная статья.
К сожалению, подобным функционалом не пытался заняться, но писал нечто подобное для автоконфигурирования SIP-шлюзов.
В частности, была задача по миграции большого (4500 устройств) количества оборудования с одного SIP сервера на другой. В итоге пришлось писать целую программу (хотя понимаю, что можно было обойтись и скриптами на том же Perl) на Delphi (вот только не нужно холивара типа «C/C++ круче!» — писал на том, чем владею. В итоге экономилось громадное количество времени.
Для сравнения: Чтобы перенастроить один шлюз руками, требовалось 2-3 минуты. Параллельно можно делать по 2-4 шлюза в зависимости от внимательности, иногда больше.
Программа легко справлялась с 20-32 шлюзами одновременно, настраивая их, и перезапуская.
Итог: За ночь спокойно переносилось 200-300 устройств (больше не давала необходимость перестраховаться, хотя в один день получилось около 500 штук перегнать).
Сервер менялся на совершенно другое устройство и вместе со сменой адресов, менялись и учётные данные на оборудовании.
В любом случае пришлось бы менять хоть что-то, так что меняли всё сразу.
Лучше спросить почему telnet, а не ssh для начала. Но видимо далеко не все устройства их понимают, а здесь важна универсальность. + возможно внутренняя политика компании.
Да, так заведено в конторе. Я так полагаю, что так сложилось исторически. На сети до сих пор в некоторых местах встречаются старички, служащие уже свой 10-й или более год.
Откройте для себя rancid. Да и вообще сетевым инженерам не пристало под виндой работать.
Rancid — оно же для грабления конфигов? А не для распуливания изменения конфигов по сети.
Кто ж вам мешает сделать clogin -x cmd.txt $ip1 $ip2…
Плюс легко вывод сохраняется в файл и потом обрабатывается grep/sed/vim, заливается в базу, etc.
Спаисбо за наводку ))
По поводу винды согласен, но… корпоративная политика. Из линукса я, например, просто никуда не попаду. т.к. попать в DMZ можно только через виндовую проксю. а ISA-клиента под линукс нет, +домен корпоративный, со всеми вытекающими.
Виндовая прокся в операторе? Ужасно.
Я в похожей ситуации запускал Debian на виртуалке.
Спаисбо. Чуть чуть «утащил» из вашего скрипта себе.
Сам написал похожий скрипт, но для других целей. Поделюсь своими наблюдениями:
У всех железок отличается строка приветствия, и я ориентируюсь по ней что бы логиниться (не перебирать логины а сразу вводить нужный).
Еще могу порекомендовать использовать 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
Абсолютно с вами согласен. Case намного удобней, но о нем я узнал где-то в конце написания своего скрипта и посчитал совершенно нецелесообразным рефакторить ради просто красотульки. А в будущем, конечно, буду пользоваться им.
По поводу строки приветсвия — у меня разные логины могут быть на одной и той же железке, т.ч. от перебора в моем случае не деться.
Рад, что вам оказалась полезна часть моей работы.
а что там в скрипте для GPON можно посмотреть? Возможно автор знаком с приставками ZTE GPON, хотелось бы для них скрипт настройки тоже сваять
Sign up to leave a comment.

Articles