Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації до оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Допомога проекту
Люди
Трохи про безпеку

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"

Cisco Catalyst 2960G-24TC-L

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"

Mikrotik CSS326 (SwOS)

set timeout 120

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


spawn /usr/local/bin/curl --silent --anyauth --digest --max-time 120 -u $login:$password "http://$ip/backup.swb"

expect "host"
envy.1682595345.txt.gz · Востаннє змінено: 2023/04/27 14:35 повз nightfly