[Req] Expect/Python. How to?

отредактировано марта 2016 Раздел: Мониторинг сети
Доброго времени суток. Подскажите, пожалуйста, где можно внятно почитать с самого начала про Expect? Периодически возникает потребность им воспользоваться и даже скрипты есть какие-то, но как конкретно он работает, не понимаю. Из-за этого переписывание одного и того же скрипта для выполнения разных задач выливается в адские муки и циклическое гугление одних и тех же обрывков статей. :)
Или, если есть какая-нибудь где-нибудь хорошая статья про управление различным железом посредством Python, подскажите, пожалуйста. На нём даже было бы интереснее.
Заранее спасибо.
PS: Под "железом" подразумеваю свичи и роутеры 1го или 2го поколения.
PSS: Да и вообще было бы интересно послушать, кто как рулит энтерпрайзомю :)

Комментарии

  • Рулим при помощи базы данных, Perl-скриптов и перловой-же библиоткеки SNMP.
  • Недавно вышло несколько модулей у ansible для управления Cisco устройствами, в релизе 2.1 будет выпущено, сейчас пока в бете, уже опробовал, телодвижений существенно меньше, но есть и свои минусы
  • Использовал Ansible для управления около 400 linux-машинами. Впечатления крайне положительные. :) Я бы сказал, что это хорошая новость. :)
  • Советую посмотреть на библиотеку Netmiko для Python вместо Expect.
  • Возможно не совсем в тему, но может быть, у кого-нибудь есть наработки по управлению маршрутизаторами с помощью Powershell?
  • dmfigol написал:

    Советую посмотреть на библиотеку Netmiko для Python вместо Expect.

    Еще можно курс по автоматизации сетевых железок от автора Netmiko - Kirk'a Byers'a пройти: (https://pynet.twb-tech.com/) я когда проходил у него был бесплатный для совсем начинающих и продвинутый платный Python+Ansible.
  • Использовал Netmiko - очень удобно и красиво получилось. :) Спасибо большое за наводку. ;)
    Но тема, считаю, интересная по поводу руления большим парком машин, будет неплохо, если кто-то поделится опытом. :)
  • отредактировано марта 2016
    есть не плохой модуль для Python
    https://pypi.python.org/pypi/ciscoconfparse
  • Ребят скажите, а какие например задачи в энтерпрайзе/isp требуют использования подобных Netmiko модулей?
  • Ну вот например я использую ansible когда мне надо на ряде устройство изменить acl, добавить какие-то общие параметры на все железки, бекапы делать по расписанию, создать vlan на ряде устройства и.т.д.
    Конечно для этих целей Cisco Prime Infrastructure самое то, но он зараза дорогое удовольствие.
  • Maugli написал:

    бекапы делать по расписанию

    Рекомендую oxidized попробовать, оч удобно для сбора и контроля версий конфигов.

  • Maugli написал:

    Ну вот например я использую ansible когда мне надо на ряде устройство изменить acl, добавить какие-то общие параметры на все железки, бекапы делать по расписанию, создать vlan на ряде устройства и.т.д.
    Конечно для этих целей Cisco Prime Infrastructure самое то, но он зараза дорогое удовольствие.

    клева, еще походу можно какой-нибудь ip / mac в сети поискать через скрипт
  • Alex.Kovalev написал:

    Maugli написал:

    бекапы делать по расписанию

    Рекомендую oxidized попробовать, оч удобно для сбора и контроля версий конфигов.

    я это потом все в git кидаю, и там смотрю на диффы.
  • Jay-T написал:


    Или, если есть какая-нибудь где-нибудь хорошая статья про управление различным железом посредством Python, подскажите, пожалуйста. На нём даже было бы интереснее.

    PS: Под "железом" подразумеваю свичи и роутеры 1го или 2го поколения.

    А что именно нужно? Если порт включить/выключить, конфигурацию слить/сохранить, IP изменить и т.п. операции, которые вменяемо делаются по SNMP, то можете этой штукой побаловаться. :)

    p.s. Но для циски сложнее будет приспособить - очень уж у нее неочевидно некоторые вещи по SNMP пилятся. У себя применяем, в основном, для D-Link/Brocade.
  • Jay-T написал:


    Или, если есть какая-нибудь где-нибудь хорошая статья про управление различным железом посредством Python, подскажите, пожалуйста. На нём даже было бы интереснее.
    Заранее спасибо.
    PS: Под "железом" подразумеваю свичи и роутеры 1го или 2го поколения.

    Я пишу курс/статью по питону для сетевиков: http://xgu.ru/wiki/Python_для_сетевых_инженеров

    Более прикладное, пока что, в процессе написания. Но основы уже есть.
    Так что, может найдете что-то полезное.

    Ну и потихоньку примеры выкладываю на github.
    Для примера, базовое по pexpect/telnetlib/paramiko/netmiko:
    https://github.com/natenka/PyNEng/tree/master/examples/day5/1_telnet-ssh

    Там же, например, есть несколько базовых примеров с использованием Ansible для сетевого оборудования.
  • Есть один небольшой но наболевший вопросец по Ansible: "А кто-нибудь использовал Ansible для построения карты сети, например, используя модуль lldp или какой-другой способ описания (да хоть ручками по mac)?"
  • madguru написал:

    Есть один небольшой но наболевший вопросец по Ansible: "А кто-нибудь использовал Ansible для построения карты сети, например, используя модуль lldp или какой-другой способ описания (да хоть ручками по mac)?"

    я писал скрипт на питоне, который строит карту сети, опрашивая железки по SNMP и использует табличку LLDP.
  • udaltsov написал:


    я писал скрипт на питоне, который строит карту сети, опрашивая железки по SNMP и использует табличку LLDP.

    А на github не выкладывали? Можно глянуть?

  • udaltsov написал:

    madguru написал:

    Есть один небольшой но наболевший вопросец по Ansible: "А кто-нибудь использовал Ansible для построения карты сети, например, используя модуль lldp или какой-другой способ описания (да хоть ручками по mac)?"

    я писал скрипт на питоне, который строит карту сети, опрашивая железки по SNMP и использует табличку LLDP.
    Скрипт - хорошо, но у меня сейчас в голове роится более глобальная идея. потому только ansible, только хардкор.
  • madguru написал:


    Скрипт - хорошо, но у меня сейчас в голове роится более глобальная идея. потому только ansible, только хардкор.

    Но, скорее всего, готового на ansible Вы не найдете такого.
    По крайней мере, я не помню подобных модулей.

    А это значит, что надо будет делать свой модуль, скорее всего.
    И как раз, возможно, тот скрипт бы Вам помог. В ansible свои модули очень легко интегрируются
  • Недавно такой скрипт нашел:
    https://github.com/jtdub/pyMultiChange
    Очень удобно для массового конфигурирования IOS устройств. Там по описание просто понять как работает, на любом линуксе с питоном легко запускается.

    А так похоже да, будущее за Ansible. Сейчас для него много всяких модулей готовых выходит для сетевых железок.
    Вообще по теме автоматизации можно презентации nanog глянуть, там сейчас это самая актуальная тема. NetDevOps - это похоже наше будущее :smile:
    Вот хорошая презентация, чтобы понять что это такое и в каком направлении сейчас развиваться надо:
    https://ripe71.ripe.net/presentations/54-LeslieCarr_What_is_NetDevOps_Why_RIPE71.pdf

    В вакансиях часто стали появляться требования навыков автоматизации сетевых инфраструктур - так что я считаю надо сейчас серьезно в этом направлении начинать развиваться, чтобы потом не надо было догонять. Да и в целом когда даже на минимальном уровне начинаешь применять все эти инструменты - это дает более четкий контроль за всей инфраструктурой и хорошую порцию свободного времени добавляет. Задачи типа "настроить фичу на 11 свичах" или "развернуть сеть для бранч офиса" становятся совсем простыми и не занимают много времени.


  • отредактировано марта 2016
    mxssl написал:


    NetDevOps - это похоже наше будущее :smile:

    Совершенно согласна с Вами.
    Хотя, многие сами к этому пришли, но может быть сложно, сразу изменить подход и осознать эти изменения.

    Ресурсов по теме NetOps и подходом и адаптации софта, все больше.
    Кстати, пишется аналог Ansible для сетей. Это stealth стартап.
    Но надеюсь они допишут его и не закроют. Сейчас он вообще исчез и закрыли сайт, но говорят, что его пишут и, возможно, он скоро появится.
    Называется Schprokits.

    http://jedelman.com/home/automated-network-diagrams-with-schprokits-autonetkit/

    P.S. Спасибо за ссылку! Как раз собираю подобные материалы.
  • отредактировано марта 2016
    Ребята, если дело стоит за серьёзными сетевыми инструментами, советую копнуть в сторону-
    https://kb.nocproject.org/display/SITE/NOC
    Когда я работал в операторе связи, разворачивали эту систему, скажу что это достаточно мощный инструмент.
    По началу NOC работал как сборщик конфигов, конфиги можно сравнивать на предмет изменений построчно что очень удобно, всегда можно понять кто и что менял. И это только маленький кусочек возможностей этой системы.

    У нас есть 2 подкаста на эту тему
    http://linkmeup.ru/blog/114.html # Интеллектуальные Системы Контроля Работы Сети и проект NOC
    http://linkmeup.ru/blog/150.html # Системы мониторинга и управления сетью

    Приятного прослушивания :)
  • mxssl написал:

    Вот хорошая презентация, чтобы понять что это такое и в каком направлении сейчас развиваться надо:
    https://ripe71.ripe.net/presentations/54-LeslieCarr_What_is_NetDevOps_Why_RIPE71.pdf

    Лесли крута, да, та же ее презентация была на последнем наноге.
    Еще рекомендую глянуть классный воркшоп от David Swafford из Facebook, тоже с 66ого нанога: 101 p1, 101 p2 , 201
  • Alex.Kovalev написал:

    mxssl написал:

    Вот хорошая презентация, чтобы понять что это такое и в каком направлении сейчас развиваться надо:
    https://ripe71.ripe.net/presentations/54-LeslieCarr_What_is_NetDevOps_Why_RIPE71.pdf

    Лесли крута, да, та же ее презентация была на последнем наноге.
    Еще рекомендую глянуть классный воркшоп от David Swafford из Facebook, тоже с 66ого нанога: 101 p1, 101 p2 , 201
    Круть. Начал пожалуй с презенташки Лесли.
    И, внезапно, подписался на канал NANOG.
    Сюда хотел бы добавить, еще одно видео (его можно смотреть перед теми двумя, что вы предоставили)
    NetDevOps Ansible 101 to network nirvana Broadband High
    TeamNANOG
  • Коллеги, почему именно Python для этих целей?
  • madguru написал:

    Alex.Kovalev написал:

    mxssl написал:

    Вот хорошая презентация, чтобы понять что это такое и в каком направлении сейчас развиваться надо:
    https://ripe71.ripe.net/presentations/54-LeslieCarr_What_is_NetDevOps_Why_RIPE71.pdf

    Лесли крута, да, та же ее презентация была на последнем наноге.
    Еще рекомендую глянуть классный воркшоп от David Swafford из Facebook, тоже с 66ого нанога: 101 p1, 101 p2 , 201
    Круть. Начал пожалуй с презенташки Лесли.
    И, внезапно, подписался на канал NANOG.
    Сюда хотел бы добавить, еще одно видео (его можно смотреть перед теми двумя, что вы предоставили)
    NetDevOps Ansible 101 to network nirvana Broadband High
    TeamNANOG
    Ссылка не работает как надо, переходит вмкорень этого форума.
Войдите или Зарегистрируйтесь чтобы комментировать.