Skip to content

nborisenkov/cosa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published