@nocproject

Страница 747 из 2357
Dmitry
25.01.2017
12:34:12
dlink и juniper я упростил сильно

да может и киску так сделать

interface Gi0/1

description test

Google
Dmitry
25.01.2017
12:34:48
преобразовать в interface Gi0/1 description test

E_zombie
25.01.2017
12:34:53
а давайте отрежем володину ногу? (с)

Dmitry
25.01.2017
12:35:04
не надо, не надо, я вспомнил дорогу

клипс, да

вынести надо нафиг

E_zombie
25.01.2017
12:35:28
тогда пушни мой коммит

Dmitry
25.01.2017
12:35:31
и заменить обычным питоном

ну а фигли ты json в кучу со скриптом кинул?

E_zombie
25.01.2017
12:36:28
оно само (с)

Dmitry
25.01.2017
12:37:27
давайте подумаем, как удобнее писать валидаторы?

E_zombie
25.01.2017
12:39:37
ну то что они в отдельных директориях как и профили это есть гуд.

я бы лучше подумал над тем как его дебажить удобно было из консоли.

это проще

Google
Andrey
25.01.2017
12:40:29
там удобно - --debug ключик

для дискавери

E_zombie
25.01.2017
12:41:21
2017-01-25 15:25:27,237 [scheduler.discovery] [12561] [discovery|box|BALT-AR1|id] Check is disabled. Skipping 2017-01-25 15:25:27,284 [scheduler.discovery] [12561] [discovery|box|BALT-AR1|config] Checking config 2017-01-25 15:25:27,285 [rpc.sae] [>CALL] get_credentials() 2017-01-25 15:25:27,286 [rpc.sae] [10.64.255.213:19022] Sending request 2017-01-25 15:25:27,302 [rpc.sae] [<CALL] get_credentials (16.43ms) 2017-01-25 15:25:27,302 [rpc.activator-default] [>CALL] script()

я бы не сказал

это циска

Алексей
25.01.2017
12:42:05
давайте подумаем, как удобнее писать валидаторы?
неееееееееееееееееееееееееееееееееет

Dmitry
25.01.2017
12:42:19
да

:)

E_zombie
25.01.2017
12:43:05
пиздетц

N
25.01.2017
12:45:32
есть идеи?

у кого FM запущен полноценно? у меня в микросервисах, только супер пользователь видит все алармы, а обычные пользователи лишь часть, причем не понятно по какому признаку в телеграм улетает тоже не все, только то, что видят обычные юзеры

к примеру ошибки по упавшим пингам и интерфейсам долетают, но ошибки с флапающим маком, но этой же делезке нет с другой упавший интерфейс - не прилетает

Dmitry
25.01.2017
12:47:26
да

Maksim
25.01.2017
12:48:10
@dvolodin Дмитрий, подскажите. SSID на точках забирать лучше в get_interfaces ?

Dmitry
25.01.2017
13:11:34
:-/

не знаю

может отдельно все-таки?

хотя, с другой стороны

а не

Google
Dmitry
25.01.2017
13:12:13
точно не в интерфейсах

нормализация имени там обломается

Maksim
25.01.2017
13:14:53
ну вот

Dmitry
25.01.2017
13:15:10
то есть отдельный скрипт

Maksim
25.01.2017
13:15:12
и куда его тогда корячить ?

ну отдельный это не проблема. Только куда данные с него лепить?

в интерфейсы ?)

Dmitry
25.01.2017
13:15:47
по логике вещей SSID в базу нужно сложить

тогда и метрики на них можно будет делать

Maksim
25.01.2017
13:16:12
метрики сейчас тоже делаются

Ivan
25.01.2017
13:18:08
Тааак

а что юудет, если я удалю нетфорк сегмент, в котором были железки?

Ivan
25.01.2017
13:18:35
они теперь трейсят в МО..

Это ожидаемое поведение?)

Maksim
25.01.2017
13:18:59
надо вернуть то что удалил)

я позавчера инветори разломал )

Ivan
25.01.2017
13:19:35
Maksim
25.01.2017
13:20:57
=(

Ivan
25.01.2017
13:21:21
надо или бывший uuid сегмента восстановить или дропать МО

фиксы есть на эту тему?

Google
Vladimir
25.01.2017
13:22:11
давайте подумаем, как удобнее писать валидаторы?
имеешь в виду валидацию конфига с устройств? а с какой целью? показывать алармы?

E_zombie
25.01.2017
13:25:07
чтобы пиздить всяких пидоров что неправильно настраивают оборудование.

через автоматизацию проверки конфигов на валидность.

Ivan
25.01.2017
13:25:24
EXCEPTION: <class 'noc.inv.models.networksegment.DoesNotExist'>

ГРУСТЬ!

Андрей, спасай!

Vladimir
25.01.2017
13:31:36
ох какая это больная тема( мы как-то писали валидацию. в итоге делали это черезразбор текста конфига на вложенную структуру, и сами валидаторы были на питоне. в итоге проверки сводились к чему-то вроде: for ifname, iface in conf['interface']: if iface['mtu'] != '9000': ALARMA!!! ну или фикс прям тут

E_zombie
25.01.2017
13:32:03
вот вот.

а тут парсер для каждой железке. а валидатор вендоронезависимый

Admin
ERROR: S client not available

Vladimir
25.01.2017
13:32:45
в итоге мы немного по другому пошли

E_zombie
25.01.2017
13:34:51
ну у меня что то подобное было. только я парсил конфиги собранные ноком.

Vladimir
25.01.2017
13:34:59
мы теперь рендерим конфиги из какой-то общей модели, а потом интеллектуально парсим дифф между получившимся конфигом и desired. в начале никто не верил в этот подход, но вроде получилось. на сдачу получаешь сразу полное управление конфигами из центрального места, нужно закоммитить в репо, чтобы система захотела выкатить некоторые изменения на железяку

E_zombie
25.01.2017
13:35:03
было дуже забавно наблюдать результат.

кхм.

Vladimir
25.01.2017
13:36:31
истессно в полуавтоматике, изменения которые надо выкатить все же валидирует человек, но один раз, после изменения модели

E_zombie
25.01.2017
13:37:37
а не проще всё под одну гребёнку ?

Vladimir
25.01.2017
13:37:57
в смысле?

E_zombie
25.01.2017
13:38:32
ну типа конфиг должен быть везде одинаковый. и что отличается - сразу битой по лицу. и автоматический накат правильного?

Vladimir
25.01.2017
13:40:49
во-первых он не может быть одинаковым, потому что везде разные версии железа и софта. + в разных локациях могут отличаться и модели железки. в одном регионе сети такая то фича включена - в другом нет. с этих данных и рендерится этот "одинаковый" конфиг. во-вторых не всегда изменения реально стоит выкатывать сразу. бывает факапочные ситуации, когда админ намерянно пошел и притушил svi например, а автоматика сразу придет и подними его обратно, еще и пизды отвалит админу)

Google
Ivan
25.01.2017
13:40:58
@aversant тут?

Vladimir
25.01.2017
13:41:32
а если не всегда ты хочешь выкатывать сразу, то могут появиться ситуации когда одна часть конфига должна улететь на железку, а другая остаться в уме на будущее

Dmitry
25.01.2017
13:42:01
такое будет работать, но не всегда

мы делали автоматическую генерацию конфига в зависимости от того, какие клиенты на каких портах

причем можно было поменять коммутатор и на замену поставить совсем другую модель и другого вендора

но тогда требуется сервисы вести

Andrey
25.01.2017
13:43:13
@aversant тут?
это правится в shell

Vladimir
25.01.2017
13:43:35
естественно ничего не дается бесплатно

но подход вроде приживается

Ivan
25.01.2017
13:43:55
это правится в shell
будет время помочь?

Andrey
25.01.2017
13:44:16
UUID сегмента есть?

Ivan
25.01.2017
13:44:27
да, в трейсах видно

их было 2

Vladimir
25.01.2017
13:44:38
там пара должна быть
Почитал про CLIPS, перепробовал кучу всего. Получилось, что пустое поле fact бывает по разному "пустым", согласно примеру из доки vlan_id обрабатывается и не вызывает ошибки. Но при попытке вписать именно input_ipv4_filter или pim_mode возникает ошибка синтаксиса.(о чём писал выше) Если скормить условие (input_ipv4_filter "188") - то отработает. ИТОГ(где нет acl): (defrule {{RULENAME}} (subinterface (input_ipv4_filter nil) (name ?n)) => (assert (error (type "Config | Match Template") (obj ?n))) ) не NULL, а именно nil ? ИТОГ(где есть acl): (defrule {{RULENAME}} (subinterface (admin_status 1) (name ?n)(input_ipv4_filter ?acl)) (not (subinterface (name ?n) (input_ipv4_filter nil))) => (assert (error (type "Config | Match Template") (obj ?n) (msg ?acl))) )

Vladimir
25.01.2017
13:45:30
главное что это оказалось куда удобнее валидации. валидация она про раздачу пиздюлей, которых может быть много и запаришься это все расследовать, готовить на каждый кейс по патчу. и раскатывать его. а если патч различается в зависимости от железок? это гемор. а тут система показывает что тут не соответствие и сразу предлагает выкатить уже сгенерированный патч

если тебе не нравится патч - идешь в генератор, дописываешь пару строк и выкатываешь

E_zombie
25.01.2017
13:47:15
я только ради этого полез в эти гомопарсеры

ибо писать руками парсер не хочу

E_zombie
25.01.2017
13:49:23
да добавляй.

лишним не будет.

Страница 747 из 2357