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

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


envy

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
Остання ревізія По сторонах наступні версії
envy [2020/01/04 16:37]
envy [2023/12/26 17:01]
nightfly
Рядок 1: Рядок 1:
 +====== Заздрість ======
  
 +
 +Модуль "Заздрість" (Envy) призначений для збирання та зберігання конфігурацій ваших мережевих пристроїв. Пристрої можуть бути стратегічно будь-якими та опитуватись рівно так, наскільки вам вистачить фантазії. Для кожної моделі пристрою ви можете пиляти свої кастомні скрипти опиту ні в чому не обмежуючи себе.
 +
 +{{:is7sins.png?800|}}
 +
 +
 +===== Початкова конфігурація =====
 +
 +Ввімкнення модулю здійснюється відповідною опцією [[alteriniconf|alter.ini]]:
 +
 +<code ini>
 +ENVY_ENABLED=1
 +</code>
 +
 +Для доступу до модуля використовується наступний елемент "Панелі задач":
 +
 +{{:envyicon1.png?|}}
 +
 +Життєрадісна картина, яку ми бачимо, спочатку виглядає так:
 +
 +{{:envy0.png?500|}}
 +
 +Для початку слід налаштувати "скрипти заздрості" для моделей наявного у вас обладнання. Робиться це у відповідному довіднику.
 +
 +{{:envy1.png?500|}}
 +
 +Створені вами скрипи заздрості запускатимуться відносно моделі ваших заздрісних пристроїв. Запускатися вони будуть за допомогою програмного забезпечення вказаного в опції **EXPECT_PATH** конфігу **billing.ini**. Можливо це не очевидно, але очікується, що там буде шлях до встановленого expect.
 +
 +
 +{{:envy2.png?500|}}
 +
 +У наших скриптах ми можемо використовувати такі макроси: **{IP}, {LOGIN}, {PASSWORD}, {ENABLEPASSWORD}, {CUSTOM1}**. Звідки будуть братися значення цих макросів має бути зрозумілим з наступної ілюстрації:
 +
 +{{:envy3_1.png?400|}}
 +
 +Значення макросу **{IP}** береться з довідника "Світчі". Починаючи з Ubilling 1.4.3 також додано макрос {PORT}, що зоображає собою значення відповідного поля пристрою.
 +
 +Далі за допомогою відповідного довідника ми можемо додати існуючі комутатори або будь-які інші пристрої з довідника "Світчі" як "заздрісні пристрої":
 +
 +{{:envy3.png?500|}}
 +
 +Як не складно помітити, в переліку можливих для створення заздрості пристроїв, є лише ті світчі або інші пристрої, для моделі яких вже заповнені "скрипти заздрості" а також ті пристрої, для яких ще не створено заздрісний пристрій з їх ID.
 +
 +Для того, щоб переконатися, що наш пристрій опитується нормально, ми можемо скористатися контролом "Попередній перегляд" і подивитися очима, що саме повертає скрипт заздрості для цього пристрою.
 +
 +{{:envy4.png?500|}}
 +
 +Крутотінь? Правда? Також ми можемо використовувати це для дебагу наших скриптів заздрості.
 +
 +Також ми можемо примусово і "просто зараз" зберегти конфігурацію пристрою до архіву, за допомогою контролу "Забекапити конфігурацію пристрою в архів" або зберегти поточні конфіги всіх пристроїв скориставшись кнопкою "Зберегти все":
 +
 +{{:envy5.png?500|}}
 +
 +Ну от і все, тепер у нас в архіві матеріалізуються відповідні записи для кожного заздрісного пристрою, які ми можемо переглядати, завантажувати або за необхідності видаляти.
 +
 +{{:envy6.png?500|}}
 +
 +При необхідності автоматичного та періодичного збереження конфігурації "Заздрісних пристроїв" в архіві ви можете використовувати виклик **envyarchive** з [[remoteapi|RemoteAPI]], наприклад, якось так:
 +
 +<code>
 +40 20 * * *     /bin/ubapi "envyarchive"
 +</code>
 +
 +Слід також зауважити, що конфіги будуть збережені в архіві при масовій обробці, тільки для пристроїв з флагом "Активний". Але ви завжди можете зберегти конфіг, примусово скориставшись контролом бекапу на конкретному пристрої.
 +
 +===== Приклади скриптів заздрості =====
 +
 +==== Juniper MX ====
 +
 +<code>
 +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"
 +</code>
 +
 +==== Zyxel-GS-3012F/GS-4012F ====
 +
 +<code>
 +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"
 +</code>
 +
 +==== Dlink DGS-1510-28/DXS-1210-12SC ====
 +<code>
 +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"
 +</code>
 +
 +==== Mikrotik RouterOS ====
 +
 +<code>
 +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"
 +</code>
 +
 +==== OLT BDCOM 36XX ====
 +
 +<code>
 +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"
 +</code>
 +
 +==== Dlink DGS-36XX ====
 +<code>
 +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"
 +</code>
 +
 +
 +
 +==== Dlink DGS-3000-28SC ====
 +<code>
 +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"
 +</code>
 +
 +
 +
 +==== Huawei S2300 ====
 +<code>
 +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"
 +</code>
 +
 +==== Cisco Catalyst 2960G-24TC-L ====
 +
 +<code>
 +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"
 +</code>
 +
 +==== Mikrotik CSS326 (SwOS) ====
 +
 +<code>
 +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
 +</code>
 +
 +
 +==== FreeBSD host configs ====
 +
 +<code>
 +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"
 +</code>
envy.txt · Востаннє змінено: 2023/12/26 17:01 повз nightfly