Russian Qt Forum
Ноябрь 23, 2024, 18:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: написать прогу управления "умными свичами"  (Прочитано 17157 раз)
white_crow
Гость
« : Июнь 29, 2012, 11:56 »

Доброго времени суток.
Начал изучать qt для себя.
Я одмин в сетке. Есть сотни однотипных свичей.
Сейчас я их настраиваю вручную (каждый по очереди через командную строку (CLI)).
Там сотни параметров и фишек.
Если нужно поменять что-то однотипное - было бы неплохо задать "шаблон" и послать на все свичи.

свичи можно настраивать через следующие протоколы telnet, ssh, snmp, http.

Вот хочу написать прогу сам себе.
(уже написал свое первое приложение - IP калькулятор простенький)
Посоветуйте - какой протокол управления мне выбрать (в контексте Qt) ?
Критерии следующие:
- простота реализации
- безопасность в данном случае не волнует (т.е. ssh не  обязательно (хотя только он не передает все данные в открытом виде по сети, включая пароль)).
(если кому интересно - почему не волнует безопасность  - потому что даже зная пароль от свича - юзеры не могут поулчить доступ к нему - потому что на свчие настроен отдельный VLAN управления, и задан список IP адресов, с которых разрешен вход в управление - (в списке тока мой IP адрес,  а сменить адреса юзеры себе не могут - тоже одна из фич свича...))


Через web и snmp  - не все параметры коммутатора можно изменить.
К тому же snmp - не имеет подтверждение выполнения (хотя можно просто еще раз считать данные из свчиа и если парметр уже новый - значит команда прошла удачно).
И изучать проприетарные mib  к свичам - тоже не охота.
Склоняюсь к телнету - так как формат команд мне уже привычен и знаком.
и протокол очень простой.
И можно проанализировать результат выполнения команд.
Подскажите куда рыть по поводу Qt+ телнет.
И еще я так понимаю - мне нужно писать прогу - чтобы она параллельно слала указанный набор команд на все свичи из списка, иначе последовательно это будет очень долго.
Нужно создавать потоки? Или запускать копии, например консольных приложений, которые  в фоне по телнету делают свою работу параллельно, приняв нужные параметры? А GUI только для "обвязки" и удобства выбора списка свичей и профилей конфигов для свичей?
« Последнее редактирование: Июнь 29, 2012, 12:01 от white_crow » Записан
Bepec
Гость
« Ответ #1 : Июнь 29, 2012, 12:01 »

Насколько я тебя понимаю - тебе нужно просто послать дофига дофига команд на сотни ip адресов Улыбающийся Хоть в протоколах не силён (разве только в своих силён аки бык), скажу - выбирай что тебе больше подходит из протоколов и изучай. http, telnet самые простые. далее snmp и последним ssh.
Записан
white_crow
Гость
« Ответ #2 : Июнь 29, 2012, 12:02 »

Да . именно так.
выбрал telnet : )
Толкните дальше, я уже много форумов почитал, погуглил, факи и доки почитал - в голове каша....
нужен волшебный пинок...: )

И вот по-поводу этого прокомментируйте

И еще я так понимаю - мне нужно писать прогу - чтобы она параллельно слала указанный набор команд на все свичи из списка, иначе последовательно это будет очень долго.
Нужно создавать потоки? Или запускать копии, например консольных приложений, которые  в фоне по телнету делают свою работу параллельно, приняв нужные параметры? А GUI только для "обвязки" и удобства выбора списка свичей и профилей конфигов для свичей?
« Последнее редактирование: Июнь 29, 2012, 12:04 от white_crow » Записан
alexis031182
Гость
« Ответ #3 : Июнь 29, 2012, 12:05 »

Сделайте просто GUI-фронтэнд к консоли. Во-первых, это будет быстрее. Во-вторых, у Вас будет возможность использовать любой из протоколов, иначе, если писать их поддержку самому, уж очень много времени уйдёт.
Записан
alexis031182
Гость
« Ответ #4 : Июнь 29, 2012, 12:06 »

И еще я так понимаю - мне нужно писать прогу - чтобы она параллельно слала указанный набор команд на все свичи из списка, иначе последовательно это будет очень долго.
Нужно создавать потоки? Или запускать копии, например консольных приложений, которые  в фоне по телнету делают свою работу параллельно, приняв нужные параметры? А GUI только для "обвязки" и удобства выбора списка свичей и профилей конфигов для свичей?
GUI-фронтэнд к консоли + QProcess.
Записан
white_crow
Гость
« Ответ #5 : Июнь 29, 2012, 12:12 »

Ага. значит с консолью и фронтендом я правильно мыслил.
Но тогда вроде как многопоточность особо не нужна.
В том смысле, что -  через фронтенд будет запускаться бэкенд (консольное приложение , которая приняв параметры (адрес свича и команды)) - уходит в фон и выполянется,  а фронтенд вызывает следующую копию консольного приложения уже с другими параметрами из списка. т.е.  тут не нужно ждать выполения бэкенда, а значит нечего распараллеливать с помощью QProcess.
Так ?

P.S. кстати, консольная софтинка у меня уже написана - на bash + expect  = принимает параметры из командной строки и по телнету отсылает команды на свичи.
Я бы и дальше так и работал - но хочу скинуть с себя на сотрудников с меньшими правами доступа и знаниями (чтобы им не тупить в консоли "линагза", чтобы не давать доступ, чтобы не видели в совсем уж явно пароли). Вот почему захотелось гуи. Но, судя по всему - мне совсем не много придется писать - чтобы "подцепить" готовый бэкенд...
« Последнее редактирование: Июнь 29, 2012, 12:22 от white_crow » Записан
Bepec
Гость
« Ответ #6 : Июнь 29, 2012, 12:16 »

Да, если нужен самый простой работающий вариант.

Нет, если нужна ещё и система контролирующая, скажем так, узлы. Мониторящая параметры и прочее Веселый
Записан
white_crow
Гость
« Ответ #7 : Июнь 29, 2012, 12:19 »

Для мониторинга давно юзается готовая штука   - zabbix называется - свободное ПО - для мониторинга сетевых служб и тысячи их параметров состояния, железа и прочее.  Рисует кучу красифых графиков, есть разные события , сигнализация и прочие плюшки....
А мне именно для массового управления однотипным сетевым железом...
Я уже все понял - как проще сделать, только подтвердите мою мысль. что мне тут даже абсолютно не нужна многопоточность (на уровне фронтенда....)
(ибо в фоне можно запустить кучу копий backend приложения...)
« Последнее редактирование: Июнь 29, 2012, 12:21 от white_crow » Записан
white_crow
Гость
« Ответ #8 : Июнь 29, 2012, 12:33 »

А, хотя вот н7юансы возникают:

- если тупо запускать в фоне консольные команды - тогда как контролировать результат выполнения команды.....

- и если дать прогу с фронтендом какому-нить сотруднику, он ее ставит на винде без настроеного окуржения для бэкенда (который настроен на linux серваке). Либо нужно под венду проработать аналогичный бэкенд и всякий раз его настравиать на разных windows XP (после очередной переустанвоки), либо как-то передавать параметры по сети на сервер, на котором останется бэкенд)...
Ну, а если уж совсем круто делать (долго и на перспективу) - нужно, как и вы и сказали - полностью пилить все в одной софтине....включая и телнет, и анализ ответов, и многопоточность....и профили конфигов (и брать списки свичей из базы) и прочее...  если будет вдохновение - может попробую потиху пилить такую шткуку....(ибо времени появилось свободного достаточно...)
Записан
alexis031182
Гость
« Ответ #9 : Июнь 29, 2012, 12:42 »

А, хотя вот н7юансы возникают:

- если тупо запускать в фоне консольные команды - тогда как контролировать результат выполнения команды.....
Из QProcess по моему есть возможность получать результат выполнения.

- и если дать прогу с фронтендом какому-нить сотруднику, он ее ставит на винде без настроеного окуржения для бэкенда (который настроен на linux серваке). Либо нужно под венду проработать аналогичный бэкенд и всякий раз его настравиать на разных windows XP (после очередной переустанвоки), либо как-то передавать параметры по сети на сервер, на котором останется бэкенд)...
Ну, а если уж совсем круто делать (долго и на перспективу) - нужно, как и вы и сказали - полностью пилить все в одной софтине....включая и телнет, и анализ ответов, и многопоточность....и профили конфигов (и брать списки свичей из базы) и прочее...  если будет вдохновение - может попробую потиху пилить такую шткуку....(ибо времени появилось свободного достаточно...)
Тогда GUI-фронтэнд, устанавливаемый на win-клиентах может через сокеты (через самописный протокол) посылать команды Console-фронтэнду, устанавливаемому на сервере.
Записан
white_crow
Гость
« Ответ #10 : Июнь 29, 2012, 12:54 »

ок, буду пилить пробовать по-тиху.
Спасибо за ответы.
Записан
DmitryM
Гость
« Ответ #11 : Июнь 29, 2012, 14:13 »

ИМХО для таких целей лучше Python/Perl, у них куча библиотек для работы с различными протоколами.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #12 : Июнь 29, 2012, 14:15 »

....
- если тупо запускать в фоне консольные команды - тогда как контролировать результат выполнения команды.....
....
http://qt-project.org/doc/qt-4.8/qprocess.html#communicating-via-channels
Записан
white_crow
Гость
« Ответ #13 : Июнь 29, 2012, 14:57 »

ИМХО для таких целей лучше Python/Perl, у них куча библиотек для работы с различными протоколами.
Ну так или bash, как в моем случае уже сделано... : )
Но ведь речь идет об "морде".
А веб морду к Python/Perl  не охота делать (аллергия на веб интерфейс : )

да и вообще - хочется что-то уж одно изучить....Вот читал долго и выбрал Qt.  Думаю - вполне можно запилить GUI приложение (причем скомпилить на win, linux, MAC).
Записан
DmitryM
Гость
« Ответ #14 : Июнь 29, 2012, 16:53 »

А веб морду к Python/Perl  не охота делать (аллергия на веб интерфейс : )
PyQt, а так же Tcl/Tk

Вот читал долго и выбрал Qt.  Думаю - вполне можно запилить GUI приложение (причем скомпилить на win, linux, MAC).
Qt в первую очередь библиотека языка C++, а на C++ вы будете делать долго и мучительно, в первую очередь из-за работы через telnet, ssh, snmp  Подмигивающий
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 23.