Страницы

Страницы

вторник, 29 июля 2014 г.

Развёртывание UniFi контроллера и решение сопутствующих ошибок


Для обеспечения гостей гостиницы в которой я работаю беспроодным доступом в сеть Интернет была изыскана возможность развернуть на территории хотспот на оборудовании Ubiquity UniFi. В состав этого решения входит программный контроллер который моно установить на операционные системы Windows. MacOS и Linux, поскольку он основан на Java. Кстати, это удинственная зависимость, просто поставьте последнюю jre перед установкой, или начните установку и инсталлятор сам перекинет Вас на страницу с последней версией.

Контроллер под Windows устанавливается очень просто, как и многие приложения для этой ОСи, и очень быыстро, чем многие ругие приложения позвастаться не могут. Но после успешного окончания установки у меня возникла ошибка при запуске. Программа упорно твердила мне, что сервер остановлен из-за слишком долго запуска:
Initializing UniFi Controller ... Starting UniFi Controller ... Server taking too long to start... Start-up failed.

На официальном сайте данное сообщение рассматривалось в связи с ситуайией, что порты используемые приложение уже кем-то заданы и рекомендовалось изменить порты на другие в конфигурационном файле. В соём же случае проблема была в том, что встроенная база на движке MongoDB не запускалась из-за отсутствия файлов БД и невозможности их содать самостоятельно. В логах БД ./logs/mongod.txt у меня были следующие сообщения об ошибке:
Tue Jul 29 16:34:06 [conn1] Create/OpenFile failed C:/Users/Администратор/Ubiquiti UniFi/data/db/ace.ns errno:3
Tue Jul 29 16:34:06 [conn1] error couldn't open file C:/Users/Администратор/Ubiquiti UniFi/data/db/ace.ns terminating
Tue Jul 29 16:34:06 dbexit:
Tue Jul 29 16:34:06 [conn1] shutdown: going to close listening sockets...
Как я это решил:

По-умолчанию контроллер устанавливается в директорию
C:\Users\<Имя текущего пользователя>\Ubiquiti UniFi.
Откуда её впоследствии легко можно перенести просто остановив все процессы контроллера, если он запущен, скопировав папку в нужное место и поправив ярлык запуска. Относительно неё и будут указываться все пути.

Это корневая папка приложения, в ней размещена папки data, logs, bin и другие.
Как раз на невозможность создания файла ace.ns в папке data/db  движок БД и ругается в логе.
Исполняемый файл лежит в папке bin.

Запускаем консоль. Переходим в папку ./bin.

Запускаем процесс СУБД с указанием порта на котором слушаем пользовательские соединения (27117 - порт по-умолчанию) и директории с файлами БД:
mongod --port=27117 --dbpath=..\data\db
 В другом окне консоли соединяемся с запущенным экземпляром с помощью клиента mongo.exe на указанный выше порт:

mongo --port=27117
Указываем что будем работать с БД формате ace:


use ace
Запускаем процесс починки файлов БД:
db.repairDatabase()
В результате в директории ./data/db должны появиться несколько файлов вида ace.???. После чего контроллер у меня заработал. 

Комментариев нет:

Отправить комментарий