
Alexander
25.07.2018
05:05:21
не подскажете. Нок может конфиг на железку залить из базы своей?

Stannis
25.07.2018
05:07:45

Alexander
25.07.2018
05:13:06
эх
а можно выгрузить как-то все весии конфиги?

Google

Alexander
25.07.2018
05:20:09
версии конфигов*
при мирроре как я понял только последнюю скачивает
а я хочу например предыдущую. Как-то ее можно получить?

Dmitry
25.07.2018
05:23:21
sa-get now не устраивает?

Andrey
25.07.2018
05:26:53
открыть консоль браузера, посмотреть на запросы в сторону сервера
когда меняются версии конфигов
ну либо через shell

bee26
25.07.2018
06:14:18

Alexander
25.07.2018
06:14:44
да мы уже обсудили что видимо надо скрипт отдельный делать
set_config)
вот на счет его подумаю
пока срочность отпала

Google

bee26
25.07.2018
06:15:18
скрипт тебе только текст конфига найдет
на саму железку как заливать?

Alexander
25.07.2018
06:16:46
передавать в параметрах set config у указание на файл
а дальше он сделает copy tftp

bee26
25.07.2018
06:16:54
если телнет, то как минимум надо 1-ип, 2-логин/пароль, 3-маршруты

Alexander
25.07.2018
06:16:56
этот файл
а зачем логин пароль?
это всё есть в mo
и конфиги поидее есть в mo

bee26
25.07.2018
06:17:49
на железке из коробки ? вряд ли

Alexander
25.07.2018
06:17:50
только их надо замиррорить в папку с тфтп

bee26
25.07.2018
06:18:35
+ нужную версию по надо залить. тк зашифрованные пароли от версии к версии по разному шифруют

Alexander
25.07.2018
06:22:45
так погоди не очень понял
я про такую ситуацию
вот у меня есть 2000 железок cisco.ios
они уже занесени в нок и там с них по бокс дисковери сливается конфиг
хочется добавить скрипт который заливал бы какую-то ревзию конфига в стартап
те там либо миррор сделать

Google

Alexander
25.07.2018
06:24:20
либо вот как андрей подсказал делать mo.get_revision
дальше складываем в папку тфтп и скрипт на железке говорит copy по урле которую мы передадим

bee26
25.07.2018
06:24:56
copy run start не работает уже?

Alexander
25.07.2018
06:25:31
так нужен не текущий а предыдущий конфиг

Ilya
25.07.2018
06:25:34

Alexander
25.07.2018
06:27:09
не понял так нок и так же забирает конфиги по бокс дисковери

bee26
25.07.2018
06:28:27
напиши команду на железе которая сохраняет конфиг, а потом команду которая зальет этот конфиг когда железка сгорит

Alexander
25.07.2018
06:28:55
не тут как раз идея в том
что железо не сливает
ну те понятно что можно средствами железа сделать бекап конфига
но идея передать с нока на железо

bee26
25.07.2018
06:29:20
сиськи внутренней командой по расписанию сливают конфиг

Alexander
25.07.2018
06:29:31
это другая задача тк например есть железо которое нельзя перенастраивать
ну те оно на обслуживании его изменять нельзя
ну короче просто это расширяется функционал
задача решить это не железом а написать функцию для нока которая бы позволяла залить конфиг который он сохраняет :)

bee26
25.07.2018
06:30:57
те нок должен скомандовать железу - сохранить

Alexander
25.07.2018
06:31:27
да нет он просто передаст команду скопировать файлик на железо
а файлик он возьмет из ревизии
и не надо на железе менять конфигу

Google

bee26
25.07.2018
06:31:53
дык это же прямое изменение конфига

Alexander
25.07.2018
06:32:08
не. это восстановление старой ревизии
ну те концепция конфиги не меняется. мы не трогаем железо которое изменять нельзя

bee26
25.07.2018
06:33:03

Alexander
25.07.2018
06:33:40
? ну например аплинки перенастроить массово надо

bee26
25.07.2018
06:36:34
а потом вернуть обратно?

Alexander
25.07.2018
06:37:09
ну ты представь если что-то не взлетит и захоят вернуть конфиг там за 18 число :(
:)
ну я говорю это скорее вопрос про функционал
если есть конфиг на ноке хотелось бы иметь возможность его залить

Ilya
25.07.2018
06:41:41

bee26
25.07.2018
06:42:02
пишешь 2 скрипта
#1
from noc.sa.models.managedobjectselector import ManagedObjectSelector
from noc.sa.models import ManagedObject
MOS='Cisco.IOS' #селектор
params={"commands":["copy run tftp"],"ignore_cli_errors":True}
o=ManagedObjectSelector.objects.get(name=MOS)
result=[]
for i in o.managed_objects:
print i
resp=i.scripts["commands"](**params)
print resp[]
result.append({
'result': resp,
'name': i.name
})
#2
from noc.sa.models.managedobjectselector import ManagedObjectSelector
from noc.sa.models import ManagedObject
MOS='Cisco.IOS' #селектор
params={"commands":["copy tftp run"],"ignore_cli_errors":True}
o=ManagedObjectSelector.objects.get(name=MOS)
result=[]
for i in o.managed_objects:
print i
resp=i.scripts["commands"](**params)
print resp[]
result.append({
'result': resp,
'name': i.name
})
1 в крон. 2 запускаешь в часх

Alexander
25.07.2018
06:43:13


Ilya
25.07.2018
06:43:58
Некоторые железки не дают залить целиком файл, если там неизвестные переменные внутри

bee26
25.07.2018
06:44:24
и шифрованные пароли абракадаброй

Alexander
25.07.2018
06:45:36
так пароли он вроде сохраняет в том виде в котором они в show run
enable secret и тп

Google

Alexander
25.07.2018
06:45:44
это норм

Ilya
25.07.2018
06:45:51
Может пойти по другому, добавить возможность забирать конфиг командой copy и парсит уже потом результат?

Alexander
25.07.2018
06:45:54
! Last configuration change at 14:56:08 MSK-1 Tue Jun 26 2018 by MTO_Prime
! NVRAM config last updated at 14:56:13 MSK-1 Tue Jun 26 2018 by MTO_Prime

Ilya
25.07.2018
06:45:59
Хотя по идее стоит символ !

Alexander
25.07.2018
06:46:24
не тут нормальный show run он подойдет

bee26
25.07.2018
06:46:53

Alexander
25.07.2018
06:47:27
да не то что циски умеют конфиги сохранять я вкурсе
это просто настраивать нельзя
тк непредусмотрено

bee26
25.07.2018
06:47:44
меньше внешних скриптов

Alexander
25.07.2018
06:47:45
ну те не под моим контролем железки
не имею права менять концепцию

bee26
25.07.2018
06:48:31
странно. ломать нельзя, а гемор исправлять тебе

Alexander
25.07.2018
06:48:43
тык стандартная работа вроде))

cns
25.07.2018
06:57:42
Подскажите, кто знает, как выделенное поле сделать многострочным
ну или хотя бы в каких файлах копать
Планируется в этом поле отображать шаблонный блок конфига