nocproject.org
11:24
dvolodin, не добрался до меппинга?)
11:24
пока еще нет
11:24
вливаю брокейды и smart edge
11:25
mikevlz|2: посмотрел твои брокейды
11:25
нарисуй плиз) скрипты стоят а за ними и модельки. 6500е модельки еще подгоню
11:26
лучше в get_inventory попилить все на разные функции и налепить на них декоратор @NOCScript.version(...)
11:27
А с меппингами пока не понял, как сформулировать задачу
11:28
смотри - в number скрипт отдает лабуду, которая определяет слот
11:28
не
11:28
смотри
11:28
там явно у модели должна быть возможность указывать один или несколько меппингов, которые отображают ключи в значения
11:28
так вот
11:29
является ли меппинг свойством модели, или они живут отдельно ?
11:29
они будут фигурировать в connection rules
11:29
ибо в серверах - это свойство MB
11:29
под каждую модель рисовать рулзы?
11:30
да в том то и дело, что нет
11:30
не, я думаю что проще сделать универсальные рулзы, которая будет коннектить скажем PCIe Slot 3
11:31
если мы их заколотим в модель, то их придется дублировать, если они одинаковы
11:31
а в модели меппится pci@0000:09:00.0 -> PCIe Slot 4
11:31
Дим, ты видел как программируют индусы?
11:31
вот примерно так же китайцы платы разводят
11:31
там нет одинаковых меппингов
11:31
если только модель не 100%
11:32
совпадающая
11:32
тогда смотри
11:32
меппинги у нас жестко на connections завязаны?
11:32
на connections модели
11:32
рулз может быть универсальным
11:32
скажем PCIe{N}
11:32
и дальше вставляем
11:33
я вот про что
11:33
смотри
11:33
у нас у connections есть name
11:33
может мы просто добавим поле internal_name?
11:34
то есть у тебя будет name="pcie1" internal_name="pci@1.2.4:666"
11:35
да
11:35
просто для каждого слота укажешь его потрошка
11:35
тогда уж Internal Designator: "J1H2 - SATA 3"
11:35
Internal Connector: 0x22 (Other)
11:35
такое в потрошках
11:36
т е смысл я понял
11:36
только сопоставление будет в рулах по каким признакам
11:36
в модели в connections добавим некий внутренний номер
11:37
и target connections в connections rule сделаем, скажем, переменную {internal}
11:37
ну я тебе о том, чтобы ввести новую переменную неделю назад говорил)
11:37
что означает, что цепляем мы не по name, а по internal name
11:38
Internal Designator: "JA5A1"
11:38
External Designator: "NIC 2"
11:38
External Connector: 0x0b (RJ-45)
11:38
там не только переменную, но и правила поиска надо
11:38
сделай External Designator и все
11:38
тебе internal designator нужно
11:38
оно хоть явно будет указывать на сопоставление
11:39
ну...по сути сопоставление internal > external)
11:39
но в понятиях нока - да, внутренний
11:39
хотя не, стоп.
11:39
в намбер я отдам внутренний
11:39
что нам вернет скрипт в number?
11:40
а в модели надо внешний
11:40
скрипт внутренний отдает
11:40
pci@1.2.4:666
11:42
вот по нему и ловить, так?
11:44
да
11:44
но в рулзы отдавать уже слот
11:44
ехтернал десигнейтор
11:46
а зачем?
11:46
если мы в рулзах по internal'у нормально найдем?
11:47
собстевенно наш mapping -- это internal_name -> name
11:47
стой, давай еще раз в тепминологии определимся
11:47
если так вот как ты выше написал
11:47
то скрипт отдает name = internal_name
11:48
в выводе инвентори как и в коннекшен рулзах мне удобнее видеть PCIe Slot {N}
11:49
ой, number = internal_name
11:49
вот так.
11:50
ну да
11:50
а в connection rules вместо PCIe Slot {N} ты напишешь просто {internal}
11:50
или {internal_name}
11:51
а как тогда модель будет отображать слот в выводе инвентори?
11:52
pcie3
11:52
как ты ее в модели назвал
11:52
ye nfr uel
11:52
ну так гуд
11:52
внутреннее имя будет только для того, чтобы по нему приткнуть
11:53
просто будем знать, что есть target name у нас {internal_name}, то не валяем дурака, ищем connection по internal_name и по нему засаживаем
11:53
дальше этого внутреннего имени не видно будет
11:53
поеду я, еще подумаю в дороге
11:55
окей
12:57
а, да, dvolodin, Дим, мы забыли про то, чтобы по number можно было в модели присвоить устройству статус is_builtin = True, иными способами там порой невозможно определить интегрированное оно или нет.
12:58
т е в нагих терминах по internal_name
13:39
а я тут утречком еще гет_инвентори для SCE8000 накатал
13:46
молодец
13:46
у меня только к 2020 доступ
13:46
а там нечего дергать
13:46
кроме серийника)
13:46
там бы гет_интерфейсес еще
13:46
или писали уже?
13:48
нет
13:48
в профиле только версия и конфиг
13:48
теперь еще инвентори
13:48
правда с трансиверами затык.
13:48
ну да хер с ними
13:49
пеока что
13:49
SCE2#sh inventory
13:49
NAME: "Chassis", DESCR: "Cisco SCE 2020 Service Control Engine, Multi Mode, 4-port GE"
13:49
PID: SCE2020-4XGBE-MM , VID: V02, SN: CAT11345BM8
13:49
ну и у меня к брокейду модель платы 24 SFP еще появится скоро. А для SCE была плата на 8 гигов, но ее продали :)
13:49
да собственно должно сожрать
13:50
тут ничо нового нет
13:50
вернет только шасси
13:50
дык там нет сменного ничего, разве что БП
13:50
а там фиксированная конфигурация, как и для 1010
13:50
а вот бп хрен дернешь поди
13:51
SCE2020 тоже продали. Комплектом с SmartEdge100
13:51
года два назад
13:52
стоечки вырисовываются уже... кроссы бы еще и ИБП с PDU докинуть
13:54
да, хер БП дернешь
13:54
ни в версии, ни в инвентори, ни команды power нет
13:56
интерфейсы все ж надо
13:56
только как их потом стыковать опять же
13:58
они ж там хитрожопо меппятся в linecard
13:59
и никакого lldp или stp
14:00
причем кошки у меня через нее видят друг друга по udld)
14:00
так она просто кусок умного провода
14:00
короче призрачно-прозрачная хуйня
14:00
и как ее влепить в топологию хз)
14:00
через базу?)
14:00
а, там же можно линки лепить
14:01
в принципе, у нее как ни настраивай арп будет светить и в магистральные порты
14:01
только интерфейсы снять надо сначало
14:01
можно так ее детектить
14:01
это как ты будешь проверять?)
14:01
там даже ари не посмотришь вроде
14:01
арп
14:02
на п2п линке с двумя чужими маками в разрыве линка есть SCE
14:02
не на ней смотреть, а на других железках
14:02
ну это отдельный алгоритм пилить надо
14:03
по макам не особо надежно вообще линки строить. Если не п2п линк - там хер определишь где кто
14:03
только засада. Это или реально п2п линк или не п2п нифига
14:04
так что только руками
14:04
для рук все равно надо интерфейсы
14:04
а там еще вывода нет брифингового
14:04
только с перебором номеров
14:05
ну тут проблема курицы и яйца
14:06
есть модель, в ней сказано, что есть порты. Можно интерфейсы вообще по модели создавать
14:06
а get_interfaces можно дергать, если есть, для детализации
14:07
в конце концов тебе ни один get_interfaces не говорит ничего про консоль...
14:14
это да
14:17
но тут Дима может несогласным быть)))
14:19
с серверами все ж инвентори интересней)
14:19
там бля что не железка, так икзымпляр)
14:20
ты до самосбора еще не дошел? =)
14:20
выложи свой get_inventory для сце, гляну на 2020 как оно будет
14:21
ну как сказать. Технически я реализовал просто - если Chassis не детектится, но есть Mboard - они дублируют друг друга. Если наоборт = то получаем платформу. Ну а если оба детектятся, то ваще щикарно
14:22
да там копия стандартного IOS инвентори
14:22
почти :)
14:22
там еще с ОЕМ хватает веселухи
14:22
ты видел как я БП показывал?)
14:23
щя
14:24
*-power UNCLAIMED
14:24
description: To Be Filled By O.E.M.
14:24
product: To Be Filled By O.E.M.
14:24
vendor: To Be Filled By O.E.M.
14:24
physical id: 1
14:24
version: To Be Filled By O.E.M.
14:25
serial: To Be Filled By O.E.M.
14:25
capacity: 32768mWh
14:25
о как зоебись.
14:25
мощща отдельно доставляет
14:28
понабрали прошивальщиков по объявлению
14:37
32 ватт-часа
14:37
ахренеть
14:40
до миливатта точность
14:42
и как то подозрительно совпадает с последним числом в 8000h или 1000 0000 0000 0000 bin -)
15:22
dvolodin, Дим, мы забыли про то, чтобы по internal_name можно было в модели присвоить устройству статус is_builtin = True, иными способами там порой невозможно определить интегрированное оно или нет.
15:22
мммм
15:23
если оно уже попало в модель, то, наверное, никак
15:23
разве что в самой модели хранить список builtin'ов
15:28
ну или так
15:29
что такая то шина - это то самое бултин
15:29
а то там вывод по сетевкам - чипсеты тупо, а не карты
15:30
и где там карточка на таком же чипсете, а где встроенная - по другим признакам кроме шины не определишь
15:31
и тут еще mikevlz предложил для железок, что являются прозрачными решение - в модели описывать интерфейсы, и оттуда их пихать в interfaces, чтобы линки руками прописывать.
15:31
в частности для SCE
15:32
автоматом там все равно линки не задетектить
15:32
знаешь что беспокоит
15:32
если выгребать другой тулзой, то все поменяется
15:33
где гарантия, что они будут выдавать эти внутренние номера
15:33
дык
15:33
смотри - стандарта нет
15:33
данные можно взять только с биоса
15:33
оттуда в разных форматах выдает их dmidecode lshw и lspci
15:34
в стандартной поставке на всех дистрибах их может не быть
15:34
ни одной
15:34
потому я и предложил зацепиться на одной тулзе, которая стандартизирует вывод с раных дистрибутивов
15:34
может со стороны ipmi зайти?
15:35
Дим, да нету там нужных нам данных
15:35
тулза не будет работать на фре и под ви
15:35
виндой
15:35
я уже сто раз показывал что отдает ило
15:35
там только шасси
15:35
без набивки (даже без CPU)
15:35
я про другое
15:35
если мы будем драть с винды набивку, не придется костыли еще делать?
15:35
или с ESXi?
15:36
на фре будет dmidecode + pciconf
15:36
на ESXi я юзаю только то, что с ней идет
15:36
ничего стороннего
15:36
а с виндой так или иначе проблемы будут
15:36
ибо там нет ни телнета, ни ссш как стандартной схемы доступа
15:37
народ нынче как-то мошношелом попадает
15:37
внутренние номера, кстати выдают все тулзы
15:37
суть вот в чем
15:37
есть сервак
15:37
формат может быть по октетам разный - это да
15:37
но стандартизировать думаю реально
15:37
модели и connection rules не должны зависить от того, какая там система
15:38
то есть выдача get_invnetory должна быть унифицированной
15:38
мм...это да
15:38
но еще раз повторю - шины - это биос
15:39
у меня правда нет реального примера, чтобы доказать
15:39
будет машинка, накачу разных систем
15:39
ну явно тулзы их не придумывают
15:39
то, что идет на уровне системы - это всякие eth1 и т д
15:40
pci@ - биос должен быть
15:40
опять же вывод - мы же скрипт делаем
15:41
там вендоры - стандарт, класс - стандарт
15:41
партномер - да, могут быть вопросы
15:41
дескрипшен ни на что не влияет, верно?
15:41
сопоставление же по партномеру идет?
15:42
да
15:42
там все понятно
15:42
ну и не проблема тогда, надо лишь его тандартизировать
15:42
если отдали part no -- мы сделаем объект с правильной моделью
15:43
у меня больший вопрос вызывает взаимоотношение chassis > motherboard
15:43
как их вязать.
15:43
а какие там проблемы-то?
15:43
вязать безусловно
15:44
одна и та же материнка может в разных платформах стоять
15:44
да пожалуйста
15:44
в корпусе connection -- mb
15:44
но при этом, бывает ситуация когда данные чассиса не снять
15:45
чтобы мамка не висела в воздухе - я часис делаю с теми же данными что и mb
15:45
а бывает наоборот - платформа чассиса снимается, а по мамке нет информации
15:45
ну это скорее случай, когда мамка там может быть только одна, специфичная
15:46
вот конкретный случай
15:46
[{'builtin': False,
15:46
'description': 'X9DRW (To be filled by O.E.M.)',
15:46
'number': 'None',
15:46
'part_no': ['X9DRW'],
15:46
'serial': '0123456789',
15:46
'type': 'CHASSIS',
15:46
'vendor': 'SUPERMICRO'},
15:46
{'builtin': False,
15:46
'description': 'Motherboard',
15:46
'number': 'None',
15:46
'part_no': ['X9DRW'],
15:46
'serial': 'VM26S35773',
15:46
'type': 'MBOARD',
15:46
'vendor': 'SUPERMICRO'},
15:47
тут все понятно в принципе, но что за корпус(а их может быть несколько) - непонять
15:47
может супермикру потеребить?
15:49
=)
15:49
они не удосуживаются забить серийники в БП - оем гонят, а ты хочешь их спросить?)
15:49
вот другой случай из мной описанных
15:49
[{'builtin': False,
15:49
'description': 'ProLiant SL390s G7 (612227-B21)',
15:49
'number': 'None',
15:49
'part_no': ['612227-B21'],
15:49
'serial': 'CZ3136SR3A',
15:49
'type': 'CHASSIS',
15:49
'vendor': 'HP'},
15:50
тут не детектится мамка, серийник у нее совпадает с шасси
15:50
но там может стоять только одна - по партнамберу
15:50
ибо оно все в сборе идет
15:51
вот и как там связь выстраивать
15:52
без мамки, сразу в шасси карты?
15:52
да
15:52
корпусомамка
15:52
окей
15:53
а с виндой..там вообще не вытянешь низкоуровневую инфу без посторонних тулз
15:53
хоть бы и с шеллом
15:55
а вообще то вру.
15:56
Capacity Caption CreationClassName DataWidth Description DeviceLocator FormFactor HotSwappable InstallDate InterleaveDataDepth InterleavePosition Manufacturer
15:56
2147483648 Physical Memory Win32_PhysicalMemory 64 Physical Memory XMM1 8 2 1 JEDEC ID:CE 00 00 00
15:56
2147483648 Physical Memory Win32_PhysicalMemory 64 Physical Memory XMM2 8 2 1 JEDEC ID:00 00 00 00
15:56
2147483648 Physical Memory Win32_PhysicalMemory 64 Physical Memory XMM3 8 2 2 JEDEC ID:00 00 00 00
15:56
2147483648 Physical Memory Win32_PhysicalMemory 64 Physical Memory XMM4 8 2 2 JEDEC ID:CE 00 00 00
15:56
4194304 Physical Memory Win32_PhysicalMemory 2 Physical Memory SYSTEM ROM 0 0 0
15:56
из обычного кли)
15:57
Base Board Win32_BaseBoard Base Board TRUE FALSE Hewlett-Packard Base Board TRUE 3032h
15:58
SerialNumber
15:58
CZC9407G52
15:58
=)))
16:01
Intel(R) Core(TM)2 Quad CPU Q9400 @ 2.66GHz
16:01
ну в принципе все то же - из биоса
16:01
сейчас по устройствам наpci шине гляну
16:08
с наскоку не вижу. но порты там подергать тоже можно
16:11
да похоже на винде можно написать не хуже инвентори)))
16:11
только нок надо будет учить ходить в шелл винды
16:27
да не проблема в обще-мто
16:27
16:30
что-то вроде такого
18:20
_4ePTeHok, ты за винду не беспокойся, все там есть
18:20
18:20
или так
18:20
18:22
а вообще вас что-то на сервера потянуло
18:22
вряд ли винды интересны тем кто юзает нок
18:23
чтобы виндоводов заинтересовать, надо инвентори софта делать, чтобы они могли учет лицензий вести
18:50
zi_home: я поправил редактирование загрузки стоек
18:50
теперь сразу видно результат
18:51
для винды такого софта до жопы
18:52
у нас достаточно большой контингент контента и датацентров
19:01
ну, да, до жопы, поэтому еще один не особо нужен, а телекому винды до балды
19:04
dvolodin, почему не прижать панель редактирования к стойке с небольшим зазором. и показывать ее всегда, без кнопки
19:11
а что там еще кроме кучи пустого места
19:53
много буковок и цифирок - тоже плохо
20:07
не так их и много будет, в худшем случае 42 строки
20:08
кстати, нет проверки если указываешь позицию за пределами стойки
20:10
и такая мысль, может приравнивать pos front и pos rear если железка крепится и спереди и сзади
20:10
ASR именно так
20:10
и сервера все такие же
20:13
zi_rus: front и rear -- пока условность
20:15
формально, можно по глубине проверять
20:17
мануал надонаписать
20:17
а то я этот инвентори сраный уже ненавижу
20:19
чего так?
20:19
ты первый
20:20
да непонятно нихера
20:20
чего там и ка
20:20
к
20:25
да всё непонятно
20:25
как добавлять, куда нажимать, как у других какие-то модели сами собираются
20:26
в managed object profile галочку поставь asset inventory
20:30
что умеет, то наберет
20:31
может все же набросать план/структуру документации, и начать её писать ?
20:40
кто будет ее писать?
20:44
да мне пофиг - я стратег
20:46
а
20:46
ну настратегируй нам структуру
20:56
_4ePTeHok: сделал я internal_name
20:56
в target_connection нужно писать просто {N}
20:57
реализация просто идиотская по простоте
21:01
итого - стойки у нас есть, надо бы серваки хотя бы на уровне тушек
Share this page
Share this page: