Jump to content

Recommended Posts

Posted

Есть сеть на D-link коммутаторах, коммутаторов каждой серии по 60 штук, если ли скрипт на linux для прошивки коммутаторов всех одновременно по snmp? help?

Posted

У меня есть скрипт который по телнету выполняет команды из файла commands, заходя по очереди на IP из файла

Posted (edited)

expect + telnet (snmp) пишется минут за 10-15.

 

Лучше сами потренируйтесь.

 

Да, прошивая коммутаторы в поле, стоит предварительно проверить совместимость прошивок. На дебилинках сталкивался с крайне непредвиденными косяками с stp и ip-mac-port привязках.

Edited by passer
Posted

на перле накидал подобный апдейт по телнету за 10 мин

 

Да, прошивая коммутаторы в поле, стоит предварительно проверить совместимость прошивок.

Знамо дело, сначала все прошивается и проверятся на стенде, затем десяток коммутаторов в поле, лишь потом массовый апдей

Posted (edited)

по snmp быстрее правда.

там все просто.

Согласен, но у длинков есть один ... эмнь... одна особенность, менять ОИДы от прошивки к прошивке, CLI менее подвержен этому идиотизму

Edited by pppoetest
Posted

скрипт на linux для прошивки коммутаторов всех одновременно по snmp?

Все одновременно опасно, т.к. при перепрошивке узлового устройства отвалятся конечные.

Если они в этот момент тоже перепрошиваются - не факт, что процесс закончится успешно.

 

Сценарий для сбора конфигов, можете взять за основу:

#!/usr/bin/perl

use strict;
use warnings;

use DBI;
use Net::Telnet;

my $TFTP_SERVER = '10.90.90.250';
my $TFTP_PATH = 'configs';

my $LOGIN = 'admin';
my $PASSWORD = 'MyPass';

sub exec_telnet($$) {
       my ($IP, $CMD) = @_;
       my $t = new Net::Telnet(Prompt => '/[\$%#>] *$/');
       unless ($t) {
               warn "$IP: Cannot create Net::Telnet\n";
               return undef;
       }
       unless ($t->open($IP)) {
               warn "$IP: Cannot open:".$t->errmsg."\n";
               return undef;
       }
       print "$IP: Open OK.\n";
       unless ($t->login($LOGIN, $PASSWORD)) {
               warn "$IP: Cannot login:".$t->errmsg."\n";
               return undef;
       }
       print "$IP: Login OK.\n";
       my @lines = $t->cmd($CMD);
       print "$IP: command passed.\n";
       $t->close;
       print "$IP: Closed.\n";
}

...
exec_telnet('10.90.90.12', "upload cfg_toTFTP tftp://$TFTP_SERVER/$TFTP_PATH/10.90.90.12.cfg");
exec_telnet('10.90.90.13', "upload configuration     $TFTP_SERVER $TFTP_PATH/10.90.90.13.cfg running");
exec_telnet('10.90.90.14', "upload cfg_toTFTP        $TFTP_SERVER $TFTP_PATH/10.90.90.14.cfg");
...

Posted

по snmp быстрее правда.

там все просто.

Согласен, но у длинков есть один ... эмнь... одна особенность, менять ОИДы от прошивки к прошивке, CLI менее подвержен этому идиотизму

У длинков OID-ы по работе с файлами не меняются (я ни разу такого не встречал), а зачастую они одни и теже даже на нескольких сериях коммутаторов.

Posted

Писал подобное на перле, но задача стояла: получить полностью настроенный коммутатор. Монтажник приходит, ставит коммутатор, настраивает ip и route, инженер с места пускает перловский скрипт. Скрипт проверяет прошивку, отключает stp, перепрошивает, включает stp, прописывает все типовые настройки, создаёт вланы,... + acl.

Удобно.

Posted

Некогда нашёл это в интернете

cat conveer.sh 
#!/usr/local/bin/bash
FILE=`cat $1 | sort -u` 

for I in $FILE
 do

if [ -n "$I" ]
 then


(sleep 1; echo admin_login; echo "admin_password";sleep 2; cat ./commands; sleep 5; )| telnet $I                
fi

 

В скрипте правим admin_login и admin_password, в файл commands вписываем комманды, которые нужно выполнить на коммутаторе, в файл например с именем ipofswitchs вписываем в столбец ip адреса коммутаторов.

Далее командой sh conveer.sh ipofswitchs выполняем команды на коммутаторах.

Использую этот скрипт для до настройки или перенастройки коммутаторов dlink.

Posted

Все одновременно опасно, т.к. при перепрошивке узлового устройства отвалятся конечные.

Если они в этот момент тоже перепрошиваются - не факт, что процесс закончится успешно.

ИМХО постараться надо. Кучу раз шились сразу по 5-6-7К (сейчас еще больше) разношерстных длинков и эджкоров скриптом в пару десятков строк на питоне и ни разу ничего не пропало. Залить новую прошивку оно вообще нехитро.

 

Хитрее с одновременным ребутом всех свитчей для зарузки новой прошивки. У Эджкоров есть отсрочка ребута, длинку приходится в кучу потоков скармливать всем свитчам "тяжелую команду" типа диагностики кабеля и сразу ребут. Кольца по свитчей 30 еще прокатывает. Длиннее пока нет.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.