
Илья
14.04.2016
07:09:14
:)

Ilya
14.04.2016
07:09:24
@dvolodin это хороший вопрос

Илья
14.04.2016
07:09:48
я даже готов предположить его ответ
что ssh/telnet есть везде, а netconf только в нормальных вендорах

Google

Ilya
14.04.2016
07:10:15

Илья
14.04.2016
07:12:21
Где работает NETCONF?
Ходят слухи, что на устройствах Juniper, Brocade, Cisco, Huawei и некоторых других.
… НО
Не так всё прекрасно. Отлично документированный и поддерживаемый NETCONF я встречал только на Juniper. К сожалению, на Huawei его не испытывал, т.к. не было необходимости, а в случае с Brocade не было подопытных. Но Cisco…
О работе NETCONF на линейке Catalyst как минимум до 15 версии IOS:
Ответы на запросы очень сильно пожирают CPU. running-config c XML форматированием можно ждать минут 5 при загрузке CPU под 100%.
get состояния реализован не по RFC (sic!): в ответ к, например, «show int status» Cisco всегда добавляет полный running-config.
Нет XML схем и выдача иногда странным образом обрезается. Например, на запрос «sh run int vlan777» Cisco отвечает так:

Dmitry
14.04.2016
07:21:15
тупой он и тормозной
https://www.evernote.com/l/ADlxV76YMENG4KUEGeM0iV3iT2-ty6u2L1M
вот вам на подумать
очень серьезно на подумать

Илья
14.04.2016
07:24:31
прочитал
ересь какая-то
а если не скрипт
а если мой пируль
или приложение run commands
а если сниппет
то уже все, пойдут новой сессией

Google

Илья
14.04.2016
07:25:58
а если разные скрипты выполняют одни и те же команды

Dmitry
14.04.2016
07:26:10
да нет

E_zombie
14.04.2016
07:26:20
я вижу проблемы в том что у нас половина скриптов не выставляет дефолтные "пути" при завершении работы. что практически гарантированно сделает неработоспособным 90% профилей.

Dmitry
14.04.2016
07:26:24
тут суть в том, чтобы не менять существующую логику
v I -- и в этом тоже есть проблема, да

E_zombie
14.04.2016
07:26:42
и второе - не надо изобретать велосипед и смотреть как пакетная работа сделана в последнем андроиде.

Илья
14.04.2016
07:26:44
чтобы не менять существующую логику надо признать что она идеальна

Dmitry
14.04.2016
07:26:46
потому оно и не сделано

E_zombie
14.04.2016
07:27:01
там как раз задача такая же

Dmitry
14.04.2016
07:27:03
Dmitry Volodin
при чем здесь noc, если у тебя железка умирает от команды sh int?
оператор ее не набирает, да?+
Оператор не набирает через две миллисекунда после "sh int" кучу других команд

E_zombie
14.04.2016
07:28:00
нате вам для "бодрячка" https://pp.vk.me/c314923/v314923151/1c3e/5kqUbS2Hl-c.jpg

Dmitry
14.04.2016
07:28:52
Т.е. единственный вариант вижу, в куче скриптов добавить:
sleep(50)
return r
Раз NOC не умеет таймауты между выполнением скриптов делать

E_zombie
14.04.2016
07:29:35
TASK [nsqd : include nsqd os specific tasks] 04:42
fatal: [noc2host]: FAILED! => {"failed": true, "reason": "ERROR! the file_name '/opt/tower/var/tower/playbooks/noc2/ansible/os/CentOS/main.yml' does not exist, or is not readable"}

Dmitry
14.04.2016
07:36:35
@dvolodin Дим. Можно ли будет предусмотреть таймаут между выполнением CL

Dmitry
14.04.2016
07:36:46
нафига, блин

Dmitry
14.04.2016
07:37:06
1. Можно ли будет предусмотреть таймаут между выполнением CLI команд ?

Dmitry
14.04.2016
07:37:07
я все думаю, как ручек поменьше сделать, вы - новые придумываете

Google

Dmitry
14.04.2016
07:37:42
2. Можно ли будет предусмотреть таймаут после неудачного завершения скрипта ?
Это не я придумываю. Это жизнь такая.

Dmitry
14.04.2016
07:39:31
делай нормальный скрипт get_interfaces
или отключай interface discovery на этой железке

Dmitry
14.04.2016
07:42:21
без interface_discovery нету смысла ставить галочку "is managed"

Илья
14.04.2016
07:42:41
да это важный скрипт

Dmitry
14.04.2016
07:44:29
мне всего навсего нужно, чтобы NOC "подождал" пару минут перед тем, как запустить следующий скрипт после get_interfaces
Это что-то из области фантастики ?

Илья
14.04.2016
07:45:01
это костыльный подход

Dmitry
14.04.2016
07:45:01
Нужен NOC версии 20.10 ?

Dmitry
14.04.2016
07:46:27
ну вот смотри

Dmitry
14.04.2016
07:46:35
Это нормальный подод, когда программа выполняет то, что нужно пользователю, а не то, что она сама хочет

Dmitry
14.04.2016
07:46:39
у нас для разминки 50k железок

Илья
14.04.2016
07:46:48
мне вообще не нравитсятеукщий поход к написанию скриптов

Dmitry
14.04.2016
07:46:55
сколько десятков серверов мне нужно доставить, чтобы NOC имел роскошь подождать?

Илья
14.04.2016
07:47:20
скрипт должен выполнять одну команду

Dmitry
14.04.2016
07:47:57
скрипт должен выполнить одну логическую задачу
как именно - его внутреннее дело

Dmitry
14.04.2016
07:48:05
выполнил get_interfaces. сдвинул время выполнения следующего скрипта на 10 минут

Илья
14.04.2016
07:48:17
скрипты становятся слишком сложными

Google

Dmitry
14.04.2016
07:48:25
выполнил get_chassis_id, сдвинул время выполнения скрипта на 20 минут

Илья
14.04.2016
07:48:26
get_interfaces написать почти нереально

Dmitry
14.04.2016
07:48:31
да ну ладно

Илья
14.04.2016
07:48:38
я писал, я знаю

Dmitry
14.04.2016
07:48:39
для коммутаторов он шаблонный вполне

Dmitry
14.04.2016
07:48:55
если скрипт завершился аварийно, сдвинул время выполнения следующего скрипта на "Failed interval"

Илья
14.04.2016
07:49:01
а изменить, или вставить костыль еще сложнее
если софт поменялся и в выводе команд что-то новоей появилось или пропало
нужен скрипт который выполнит команду show int

Dmitry
14.04.2016
07:50:07
@ivzakharov а ты другие реализации вообще видел?

Илья
14.04.2016
07:50:15
реализации чего?

Dmitry
14.04.2016
07:50:16
и толку тебе в sh int?
взаимодействия с железом

Илья
14.04.2016
07:50:29
он даст инфу

Dmitry
14.04.2016
07:50:35
как ты думаешь, что они все в netconf со своим xml полезли?

Илья
14.04.2016
07:50:37
ее положить в базу
да хер с нетконфом
я говорю что агрегировать данные надо уже в ноке
а не в скрипте

Dmitry
14.04.2016
07:51:08
вот чего нельзя делать

Google

Илья
14.04.2016
07:51:18
поле протоколс у тебя как заполняется?
по ответу get_interfaces?

Dmitry
14.04.2016
07:51:26
Дима, какой мне смысл в таймаутах, если 20 скриптов пытаются одновременно ломиться на железку ?

Dmitry
14.04.2016
07:51:31
ты приколы железок потащишь в discovery
Дим, они не ломятся одновременно, хватит

Илья
14.04.2016
07:51:46
нет

Dmitry
14.04.2016
07:52:10
или добавить лишних уровней абстракции

Dmitry
14.04.2016
07:52:13
Разница между выполнениями скриптов в 2 миллисекунды - это практически одновременно

Dmitry
14.04.2016
07:52:26
это называется - по очереди

Илья
14.04.2016
07:52:31
зато упростится модификация

Dmitry
14.04.2016
07:52:44
расскажи это инженерам Juniper

Илья
14.04.2016
07:53:15
тебе напомнить про inventory
как ты хотел парсинг инвентори и выдачу готового результата запихнуть в один скрипт
а сейчас есть вполне кошерная база
скрипт выполняет одну две команды

Dmitry
14.04.2016
07:54:25
да
за счет невъебенной сторонней логике, создания собственного DSL, фактически

Илья
14.04.2016
07:54:53
а дальше по коллекции партномеров и интерфейсов кусочки втыкаются сами в себя
для интерфейсов надо тоже самое
есть база, физические интерфейсы
их возвращает один скрипт
и от него расходимся