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

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


Сайдбар

Розділи

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

FAQ



Редагувати сайдбар

envy

Заздрість

Модуль “Заздрість” (Envy) призначений для збирання та зберігання конфігурацій ваших мережевих пристроїв. Пристрої можуть бути стратегічно будь-якими та опитуватись рівно так, наскільки вам вистачить фантазії. Для кожної моделі пристрою ви можете пиляти свої кастомні скрипти опиту ні в чому не обмежуючи себе.

Початкова конфігурація

Ввімкнення модулю здійснюється відповідною опцією alter.ini:

ENVY_ENABLED=1

Для доступу до модуля використовується наступний елемент “Панелі задач”:

Життєрадісна картина, яку ми бачимо, спочатку виглядає так:

Для початку слід налаштувати “скрипти заздрості” для моделей наявного у вас обладнання. Робиться це у відповідному довіднику.

Створені вами скрипи заздрості запускатимуться відносно моделі ваших заздрісних пристроїв. Запускатися вони будуть за допомогою програмного забезпечення вказаного в опції EXPECT_PATH конфігу billing.ini. Можливо це не очевидно, але очікується, що там буде шлях до встановленого expect.

У наших скриптах ми можемо використовувати такі макроси: {IP}, {LOGIN}, {PASSWORD}, {ENABLEPASSWORD}, {CUSTOM1}. Звідки будуть братися значення цих макросів має бути зрозумілим з наступної ілюстрації:

Значення макросу {IP} береться з довідника “Світчі”. Починаючи з Ubilling 1.4.3 також додано макрос {PORT}, що зоображає собою значення відповідного поля пристрою.

Далі за допомогою відповідного довідника ми можемо додати існуючі комутатори або будь-які інші пристрої з довідника “Світчі” як “заздрісні пристрої”:

Як не складно помітити, в переліку можливих для створення заздрості пристроїв, є лише ті світчі або інші пристрої, для моделі яких вже заповнені “скрипти заздрості” а також ті пристрої, для яких ще не створено заздрісний пристрій з їх 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 eof

FreeBSD host configs

set timeout 60

set login {LOGIN}
set password {PASSWORD}
set ip {IP}
#custom ssh port here
set port 22

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

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

expect "*:~ %"
send "cat /etc/rc.conf\r"

expect "*:~ %"
send "cat /etc/sysctl.conf\r"

expect "*:~ %"
send "exit\r"
envy.txt · Востаннє змінено: 2023/12/26 17:01 повз nightfly