Инструменты пользователя

Инструменты сайта


Боковая панель

Разделы

Общее описание
История изменений
Рекомендации к обновлению
Планы на будущее
Известные проблемы
Онлайн демо
Случайная статья
Видео
Помощь проекту
Люди

FAQ


envy

Зависть

Модуль «Зависть» (Envy) предназначен для сбора и хранения конфигураций ваших сетевых устройств. Устройства могут быть стратегически любыми и опрашиваться ровно так, насколько вам хватит фантазии. Для каждой модели устройства вы можете пилить свои кастомные скрипты опроса ни в чем себя не ограничивая.

Начальная конфигурация

Включение модуля производится соответствующей опцией в alter.ini:

ENVY_ENABLED=1

Для доступа к модулю используется следующий елемент «Панели задач»:

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

Для начала следует сконфигурировать «скрипты зависти» для моделей имеющегося у вас оборудования. Делается это в соответствующем справочнике.

Созданные вами скрипы зависти будут запускаться относительно модели ваших завистливых устройств. Запускаться они будут при помощи ПО указанного в опции EXPECT_PATH конфига billing.ini. Возможно это не очевидно, но ожидается, что там будет путь к установленному expect.

В наших скриптах, мы можем использовать следующие макросы: {IP}, {LOGIN}, {PASSWORD}, {ENABLEPASSWORD}, {CUSTOM1}. Откуда будут браться значения этих макросов должно быть понятно из следующей иллюстрации:

Значение же макроса {IP} берется из справочника «Свитчи».

Далее при помощи соответствующего справочника мы можем добавить существующие свитчи или ваши любые другие устройства из справочника «Свитчи» как «завистливые устройства»:

Как не сложно заметить в перечне возможных для создания зависти устройств, имеются лишь те свитчи либо другие устройства, для модели которых уже заполнены «скрипты зависти» а также только те устройства, для которых еще не создано соответствующее их ID устройство зависти.

Для того, чтобы убедиться, что наше устройство опрашивается нормально, мы можем воспользоваться контролом «Предварительный просмотр» и посмотреть глазоньками, что же конкретно возвращает скрипт зависти для этого устройства.

Крутотень? Правда? Также мы можем это использовать для дебага наших скриптов зависти.

Также мы можем принудительно и «прямо сейчас» сохранить конфигурацию устройства в архив, при помощи контрола «Забекапить конфигурацию устройства в архив» либо сохранить текущие конфиги всех устройств воспользовавшись кнопкой «Сохранить все»:

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

При необходимости автоматического и периодического сохранения конфигурации «Завистливых устройств» в архиве вы можете использовать вызов envyarchive из RemoteAPI, например, как-то так:

40 20 * * *     /bin/ubapi "envyarchive"

Следует также заметить, что конфиги будут сохранены в архив при массовой обработке, только для устройств с флагом «Активный». Но вы всегда можете сохранить конфиг принудительно воспользовавшись контролом бекапа на конкретном устройстве.

Примеры скриптов зависти

Juniper MX

set timeout 60

set login {LOGIN}
set password {PASSWORD}
set ip {IP}

spawn ssh $login@$ip
    expect {
	"(yes/no)?*" {
		send "yes\r"
		}
    }

expect "Password:*"
send "$password\r"

expect "*%"
send "cli\r"

expect "*>"
send "show configuration | no-more\r"

expect "*>" 
send "exit\r"

expect "*%" 
send "exit\r"

Zyxel-GS-3012F/GS-4012F

set timeout 30

set login {LOGIN}
set password {PASSWORD}
set ip {IP}

spawn telnet $ip

expect "User name:*"
send "$login\r"

expect "Password:*"
send "$password\r"

expect "*F#"
send "show running-config\r"

expect "*F#" 
send "exit\r"
set timeout 30

set login {LOGIN}
set password {PASSWORD}
set ip {IP}

spawn telnet $ip

expect "Username:*"
send "$login\r"

expect "Password:*"
send "$password\r"

expect "*Switch#"
send "show running-config\r"

expect "*Next Page*"
send "a\r"

expect "*Switch#"
send "exit\r"

Mikrotik RouterOS

set timeout 60

set login {LOGIN}
set password {PASSWORD}
set ip {IP}

spawn ssh -T -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $login@$ip

expect "*assword*"
send "$password\r"

expect "*] >"

send "export\r"
sleep 1
expect "*] >"
send "quit\r"

OLT BDCOM 36XX

set timeout 30

set login {LOGIN}
set password {PASSWORD}
set ip {IP}

spawn telnet $ip

expect "Username:*"
send "$login\r"

expect "Password:*"
send "$password\r"

expect "*>"
send "enable\r"

expect "*#"
send "terminal length 0\r"

expect "*#"
send "show running-config non-llid | exclude bind-onu\r"

expect "*#"
send "exit\r"

expect "*>"
send "exit\r"
set timeout 30

set login {LOGIN}
set password {PASSWORD}
set enablepassword {ENABLEPASSWORD}
set ip {IP}

spawn telnet $ip

expect "Password:*"
send "$password\r"

expect "*>"
send "enable\r"

expect "Password:*"
send "$enablepassword\r"

expect "*#"
send "terminal length 0\r"

expect "*#"
send "show running-config\r"

expect "*#"
send "exit\r"
set timeout 30

set login {LOGIN}
set password {PASSWORD}
set ip {IP}

spawn telnet $ip

expect "UserName:*"
send "$login\r"

expect "PassWord:*"
send "$password\r"


expect "*admin#"
send "show config current_config\r"

expect "*Next Page*"
send "a\r"

expect "*admin#"
send "logout\r"

Huawei S2300

set timeout 30

set login {LOGIN}
set password {PASSWORD}
set ip {IP}

spawn telnet $ip

expect "Username:*"
send "$login\r"

expect "Password:*"
send "$password\r"

expect "*way>*"
send "screen-length 0 temporary\r"

expect "*way>*"
send "system-view\r"

expect "*way]*"
send "display current-configuration\r"

expect "*way]*" 
send "quit\r"

expect "*way>*"
send "quit\r"
envy.txt · Последние изменения: 2020/03/18 17:07 — mixtery