-
Notifications
You must be signed in to change notification settings - Fork 1
nborisenkov/cosa
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
cosa.pl Скрипт для настройки Infinet Wireless R5000 (SkyMan) устройств Содержание =========================== Введение =========================== Скрипт cosa.pl предназначен для автоматизации рутинных задач настройки устройств R5000 (SkyMan). Скрипт заходит на устройства по протоколу telnet, выполняет необходимые команды, сохраняет конфиг на FTP сервер. После этого заходит на всех клиентов этого устройства и настраивает их. Таким образом в начальном списке устройств достаточно указать только базовые станции и железки, на которые нельзя попасть через эти базовые станции. Вместе с настройкой скрипт сохраняет конфиг на FTP сервер и сохраняет параметры в mysql базе, для последующего просмотра через web-интерфейс. Также вместе с cosa.pl есть модуль R5000.pm, который можно использовать в своих скриптах. Описание работы =========================== 1. Загрузка списка хостов из mysql базы 2. Логин на каждый хост 3. Получение информации об устройстве: Имя Версия прошивки Серийный номер OSPF аутентификация OSPF RID Uptime Тип лицензий и их количество GPS координаты Параметры радио-интерфейса: Частота sid Band Максимальные и текущие битрейт Мощность, Дистанция ip и mac адреса MIMO Параметры MINT: Роаминг Поллинг 4. Запись параметров в mysql базу 5. Проверка на ошибки: Имя = "Unknown node" sys user = "root" Отсутсвует пароль Нет адреса на управление на eth0 Переповторы больше определенного числа eth0 интерфейс работает в half-duplex Включено mint -type master и у соседа есть mint -type master 6. Проверка конфига на наличие определенных настроек ( checkConfig() ): Настройка td (добавление нужных и удаление лишних адресов) (по-умолчанию выключено. Для включения необходимо указать разрешенные адреса в массиве @td_allow и раскомментировать вызов checkTD() в функции checkConfig()) Включение snmpd Выключение webcfg Установка mint -mode Установка mint -airupdate Отключение отправки redirect icmp сообщений и отбрасывание их Отключение dhcp клиента и релея на eth0 Установка сервера времени и часового пояса Установка сервера логов Сброс статистики переповторов Замена "_" в имени на "-" (по-умолчанию выключено) 7. Сохранение изменений (config save) 8. Сохранение конфига на ftp сервер (config export) 9. Соединение с соседями и выполнение на них шагов 2-8 10. Отправка письма с результатами работы скрипта на почту Ограничения =========================== Скрипт тестировался на платформах: H01, H02, H05, H07, H08 Скрипт тестировался на прошивках: RMA: 4.29.10-MINI (type 0), 4.34.0-4.34.10 MINT: 1.68.0 - 1.87.22 CPE-MESH: 1.17.9-CPE-MESH (type 2) Для сохранения конфигов на FTP сервер, имена устройств не должны содержать пробелов Установка =========================== Для работы скрипта необходимы следующие perl модули: libnet-telnet-perl libdbi-perl libdbd-mysql-perl Так же необходимы настроеные mysql и ftp и web серверы. Ниже рассмотрена установка в директорию /storage/hd2/cosa на сервер с ОС Debian. web-сервер и ftp-сервер находятся на этом же хосте. Имя пользователя "cosa" 1. Создание пользователя в системе для работы скрипта. adduser --home /storage/hd2/cosa cosa 2. Скачивание и Распаковка файлов rm /storage/hd2/cosa/* sudo -u cosa git clone git://github.com/nborisenkov/cosa.git /storage/hd2/cosa или скачать zip архив: https://github.com/nborisenkov/cosa/zipball/master и распаковать его содержимое в /storage/hd2/cosa chown cosa:cosa -R /storage/hd2/cosa/ 3. Установка vsftpd (http://support.infinet.ru/Forums/technicalIssues/747966824371) apt-get install vsftpd /etc/vsftpd.conf ... anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES ... service vsftpd restart 4. Установка mysqld apt-get install mysql-server Создание базы данных и таблиц: cd /storage/hd2/cosa mysql -u root -p < cosa-install.sql Создание пользователя для доступа к базе данных: mysql> GRANT ALL PRIVILEGES ON cosa.* TO cosa_user@"%" IDENTIFIED BY 'cosa_passwd' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; 5. Установка apache2 apt-get install apache2 Отредактируйте пути и ip адреса в файле apache2.site.example Отредактируйте путь к css файлу в www/cgi-bin/configs.pl cp apache2.site.example /etc/apache2/sites-available/cosa a2ensite cosa a2enmod headers service apache2 restart 6. Добавление базовых станций и отдельных устройств в список хостов для логина http://cosa.domain.com/cgi-bin/list.pl В поле пароль можно указать AB, BS, LN, тогда при логине вместо этих значения будут подставлены реальные пароли ($passAS, $passBS, $passLN). Или можно указать свой пароль. При установленной галочке "BS". скрипт будет определять клиентов этого устройства и заходить на них. 7. Добавление задания в cron Запуск в 11 часов каждый день /etc/crontab ... 01 11 * * * cosa /usr/bin/perl /storage/hd2/cosa/cosa.pl > /storage/hd2/cosa/cosa.out ... 8. Тестовый запуск: sudo -u cosa cosa.pl -v -t 10.10.10.1 Параметры коммандной строки =========================== -t, --test Режим теста. (Подключается только к указанному хосту) По-умолчанию: 10.10.10.1. В режиме теста не настраивается td и не отправляется почта. -v, --verbose Подробный режим. Выводится больше сообщений о работе скрипта По-умолчанию: выключено -?, --help Отобразить подсказку по опциям и выйти";
About
R5000 configuration management account
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published