Comments 45
и чем он лучше paramiko?
Здесь например показано jessenoller.com/blog/2009/02/05/ssh-programming-with-paramiko-completely-different как через AutoAddPolicy() решить вопрос с RSA key fingerprint
Да, paramiko не умеет работать с telnet, но на большинстве коммутаторов, маршрутизаторов есть поддержка ssh
Здесь например показано jessenoller.com/blog/2009/02/05/ssh-programming-with-paramiko-completely-different как через AutoAddPolicy() решить вопрос с RSA key fingerprint
Да, paramiko не умеет работать с telnet, но на большинстве коммутаторов, маршрутизаторов есть поддержка ssh
+1
Paramiko хорошая альтернатива. Но конкретно мне нужен был telnet и SSHv1 для ASA, ввезённой без строгого шифрования.
0
«netmiko» это по факту и есть оболочка для «paramiko» (название намекает).
Просто в ней куски кода, которые сетевики писали раза от раза используя paramiko (распознование конца вывода, смена промпта, непосредственно процесс подключения и т.п.), объеденены в сподручные функции, и он из коробки довольно стабильно (у меня небыло глюков) работает с самыми распространенными осями сетевых устройств.
Просто в ней куски кода, которые сетевики писали раза от раза используя paramiko (распознование конца вывода, смена промпта, непосредственно процесс подключения и т.п.), объеденены в сподручные функции, и он из коробки довольно стабильно (у меня небыло глюков) работает с самыми распространенными осями сетевых устройств.
+1
Я тут недавно то же писал на эту тему.
0
Извини «автор» но на рисунке тянущие телегу на квадратных колесах это похоже ваши сотрудники. А мужичек предлагающий колеса это тот кто знает: bash, command line utilities.
Не гонитесь за популярностью изучайте классику.
Не гонитесь за популярностью изучайте классику.
-3
Если что-то изучать с нуля, то из бесплатных продуктов Python выглядит наиболее подходящим для сетевого инженера. Кроме изменения конфигурации через CLI его можно использовать для взаимодействия через RestAPI. Кроме того, у Cisco, Huawei и Juniper уже есть встроенный интерпретатор Python в некоторых маршрутизаторах и коммутаторах. Для Cisco это ISR 4000, Nexus 9000. Думаю, этот список будет расширяться.
+2
а можно детальнее об этом:
python on Cisco это ISR 4000? настраивал ISR 4331 и не заметил ничего :(
0
Для ISR нужен отдельный софт из линейки Everest. Сейчас последний — isr4300-universalk9.16.06.01.SPA.bin. С версии Everest 16.5.1b появилась поддержка Python 2.7/3.0 для ISR 4k, CSR, ASR.
Вот полезная вводная статья:
https://communities.cisco.com/community/developer/blog/2017/04/17/introducing-python-and-guest-shell-on-ios-xe-165
Вот полезная вводная статья:
https://communities.cisco.com/community/developer/blog/2017/04/17/introducing-python-and-guest-shell-on-ios-xe-165
+2
Тут ведь как — если у вас в руках молоток, любая проблема будет казаться гвоздём.
Автор явно написал — ему нужно было «одинаково под Windows и Mac OS X». И какие есть возможности под Windows? Баша «из коробки» там нет, PowerShell — это свой отдельный мир, можно ещё cygwin поставить (большой, тяжёлый, со своими проблемами). Python в данном случае не худший выбор.
Автор явно написал — ему нужно было «одинаково под Windows и Mac OS X». И какие есть возможности под Windows? Баша «из коробки» там нет, PowerShell — это свой отдельный мир, можно ещё cygwin поставить (большой, тяжёлый, со своими проблемами). Python в данном случае не худший выбор.
+1
Вот только сам Борн говорил в этом десятилетии, что решать сколько-нибудь большие задачи — не то, на что рассчитывались шелл-скрипты (в процессе дизайна, разработки языка), и рекомендовал избегать этого, иначе костылей в процессе собирается (и грабель проходится) немерено.
А в общем случае задачи системного администратора могут требовать довольно сложных комбинаций действий, и тогда становится и проще, и разумнее использовать тот же Python.
А в общем случае задачи системного администратора могут требовать довольно сложных комбинаций действий, и тогда становится и проще, и разумнее использовать тот же Python.
+2
небольшой оффтопик: со стилем программирования на python от ученых и инженеров ничего не поделать, надо привыкать ;)
0
согласен, например это
очень красиво можно сделать так
print(bcolors.FAIL + "Invalid IP - " + str(ip_address) + bcolors.ENDC)
очень красиво можно сделать так
print("%s Invalid IP - %s %s "%(bcolors.FAIL,ip_address,bcolors.ENDC))
0
да там много чего: несоблюдение pep8, общий except, открытие файла по-старому и т.д.
+1
и файлики кошернее открывать через with :)
0
Спасибо за советы. Элегантность кода, надеюсь, появится с опытом.
0
Мне одному написанное ниже кажется хуже читаемым?
0
0
Я склоняюсь к тому, что Lua удобнее во всех отношениях по сравнению с Python. Для задач администрирования.
0
С Lua не работал, но насколько я знаю, там нет такого количества доступных библиотек, как для Python. В интернете по запросу cisco+lua находятся в основном статьи про SIP и CUCM. Не поделитесь ссылкой на какую-нибудь полезную статью про использование lua для работы с конфигами сетевых устройств? Будет интересно почитать.
+1
Со стороны рынка и спроса — конечно Python несомненный лидер.
С академической точки зрения — Python это бастард.
К примеру Tcl, или Lua — то есть такие скриптовые языки,
которые ни на что серьёзное не претендуют, оставаясь именно что языками
командно-скриптовыми, предназначенными для управления другими программами.
Опять же, в администрении всё-таки чаще применяется Bourne Shell (при всей
его дубовости это однозначное must know для эксплуатационщика).
С моей точки зрения Python не имеет права на существование, как и Perl, и
Ruby, и вообще любой интерпретируемый (и тем более командно-скриптовой)
язык, имеющий претензии на роль языка общего назначения.
Но… рынок труда со мной не согласен. ;-)
P.S.
www.ibm.com/developerworks/ru/library/l-lua_3/index.html
robot-develop.org/archives/3717
С академической точки зрения — Python это бастард.
К примеру Tcl, или Lua — то есть такие скриптовые языки,
которые ни на что серьёзное не претендуют, оставаясь именно что языками
командно-скриптовыми, предназначенными для управления другими программами.
Опять же, в администрении всё-таки чаще применяется Bourne Shell (при всей
его дубовости это однозначное must know для эксплуатационщика).
С моей точки зрения Python не имеет права на существование, как и Perl, и
Ruby, и вообще любой интерпретируемый (и тем более командно-скриптовой)
язык, имеющий претензии на роль языка общего назначения.
Но… рынок труда со мной не согласен. ;-)
P.S.
www.ibm.com/developerworks/ru/library/l-lua_3/index.html
robot-develop.org/archives/3717
0
Опять же, в администрении всё-таки чаще применяется Bourne Shell (при всей его дубовости это однозначное must know для эксплуатационщика).
Достоинство у него ровно одно — в любой юникс-подобной операционке он есть «из коробки». Никакой алгоритм, подразумевающий работу с данными, организованными более сложно, чем последовательность строк, на нём реализовать невозможно, просто нет соответствующих средств.
С моей точки зрения Python не имеет права на существование, как и Perl, и Ruby, и вообще любой интерпретируемый (и тем более командно-скриптовой)
язык, имеющий претензии на роль языка общего назначения.
А, собственно, почему? Даже спрошу иначе — а где, по вашему, проходит граница между компилируемым и интерпретируемым (Java какая?), а также командно-скриптовым и «не-скриптовым» языками (php какой)?
+1
Никакой алгоритм, подразумевающий работу с данными, организованными более сложно, чем последовательность строк, на нём реализовать невозможно, просто нет соответствующих средств.Да ладно вам. Я сам лично несколько лет назад писал скрипт, который олавливал зависимости между пакетами и делал удобный инсталлятор с помощью NSIS. Всё на bash, включая топологичествую сортировку, проверки зависимостей и прочее.
Дополнительный плюс: за 5 лет скрипт никто так и не изуродовал, так как никто просто не знает — с какой стороны к нему подступиться.
+1
А может перестать бояться, изобретать велосипед, и освоить настоящий инструмент? :)
docs.ansible.com/ansible/latest/list_of_network_modules.html
docs.ansible.com/ansible/latest/list_of_network_modules.html
0
ansible — это довольно кривая и хреново документированная надстройка над голым питоном ) вместо того чтоб изучать питон, придется изучать ансибл, причем изучать по слухам, т.к. нормальной информации о том как оно работает нету.
нормальный инструмент называется HP Network Automation Tool
нормальный инструмент называется HP Network Automation Tool
-1
Годный вброс, но не сработало :)
+2
советую почитать на досуге www.allitebooks.com/ansible-for-devops
0
а эта книга актуальна для какой версии ansible?
0
Для любой, на всякий случай есть docs.ansible.com/ansible/latest/index.html где есть актуальная информация
0
Это следующий шаг для администрирования. Модули для Ansible пишутся в том числе и на Python, поэтому знакомство с ним лишним не будет. Python сам по себе более гибкий инструмент и позволяет решать более широкий спектр задач. Например, можно написать скрипт, собирающий с оборудования необходимые данные и записывающий их в Excel-файл. И это могут быть не только конфигурации устройств, но и таблицы mac, ARP, RIB, состояние сессий протоколов маршрутизаций.
+1
Используйте библиотеки. Например, вместо regex проверки IP можно использовать docs.python.org/3/library/socket.html#socket.inet_aton
+1
Сорри за дурацкий вопрос, а под Windows это вообще работоспособно? Сразу все упало с ModuleNotFoundError: No module named 'pyasn1' при том, что
D:\PycharmProjects\cisco>«C:\Program Files\Python36\Scripts\pip.exe» install pyasn1
Requirement already satisfied: pyasn1 in c:\program files\python36\lib\site-packages\pyasn1-0.3.3-py3.6.egg
Долго и нудно с библиотеками шаманить надо?
D:\PycharmProjects\cisco>«C:\Program Files\Python36\Scripts\pip.exe» install pyasn1
Requirement already satisfied: pyasn1 in c:\program files\python36\lib\site-packages\pyasn1-0.3.3-py3.6.egg
Долго и нудно с библиотеками шаманить надо?
0
Я использовал этот скрипт на Windows 10. Также перед публикацией пробовал запустить его на чистой Windows 7, действуя по шагам из статьи. То есть установив только Python 3.6 и библиотеку netmiko. К сожалению, такой ошибки ни разу не встречал. Pyasn1 нужен библиотеке paramiko, которая поставится сама при установке netmiko. Может, попробовать переустановить библиотеки pyasn1, netmiko и paramiko? (pip uninstall/pip install)
Также выложил скрипт на GitHub. Предлагаю скопировать его оттуда. В скрипте из статьи могут быть лишние символы.
https://github.com/aagarshin/habr/
Также выложил скрипт на GitHub. Предлагаю скопировать его оттуда. В скрипте из статьи могут быть лишние символы.
https://github.com/aagarshin/habr/
0
Sign up to leave a comment.
Python для сетевых инженеров: начало пути