Page tree
Skip to end of metadata
Go to start of metadata

GenieACS - это программное решение с открытым исходным кодом для удаленного управления устройствами по протоколу TR-069.

Данная инструкция адаптирована на русский язык с официального сайта разработчика, оригинал находится по ссылке. Также для упрощения установки был создан скрипт, выполните установку подходящим для вас способом.

Ручная установка GenieACS

Для работы GenieACS потребуется Node.js 10.x или выше и MongoDB 3.6 или выше. 

Установка из NPM.

sudo npm install -g genieacs@1.2.5

Создайте системного пользователя для запуска демонов GenieACS.

sudo useradd --system --no-create-home --user-group genieacs

Создайте каталог для сохранения расширений и файла среды, установите владельца для него. Каталог /opt/genieacs/ext/ будет использован для хранения скриптов расширений (если они есть).

mkdir /opt/genieacs
mkdir /opt/genieacs/ext
chown genieacs:genieacs /opt/genieacs/ext

Создайте файл /opt/genieacs/genieacs.env для хранения параметров конфигурации, которые передаются GenieACS в качестве переменных сред и через редактор вставьте в него нижеуказанный текст. Вы можете изменить значения переменных сред под ваши нужды, они описаны на сайте разработчика.

GENIEACS_CWMP_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-cwmp-access.log
GENIEACS_NBI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-nbi-access.log
GENIEACS_FS_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-fs-access.log
GENIEACS_UI_ACCESS_LOG_FILE=/var/log/genieacs/genieacs-ui-access.log
GENIEACS_DEBUG_FILE=/var/log/genieacs/genieacs-debug.yaml
NODE_OPTIONS=--enable-source-maps
GENIEACS_EXT_DIR=/opt/genieacs/ext
GENIEACS_UI_JWT_SECRET=secret

Установите владельца файла и права доступа к файлу.

sudo chown genieacs:genieacs /opt/genieacs/genieacs.env
sudo chmod 600 /opt/genieacs/genieacs.env

Создать каталог журналов и установите владельца.

mkdir /var/log/genieacs
chown genieacs:genieacs /var/log/genieacs

Создайте файл модуль systemd для каждой из четырех служб GenieACS. Обратите внимание, что мы используем EnvironmentFile для чтения переменных среды из файла, который мы создали ранее. Подробно прочитать за что отвечает каждая служба можно по ссылке.

Выполните следующую команду, чтобы создать genieacs-cwmp службу.

sudo systemctl edit --force --full genieacs-cwmp

В редакторе вставьте нижеуказанный код.

[Unit]
Description=GenieACS CWMP
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-cwmp

[Install]
WantedBy=default.targe

Выполните следующую команду, чтобы создать genieacs-nbi службу.

sudo systemctl edit --force --full genieacs-nbi

В редакторе вставьте нижеуказанный код.

[Unit]
Description=GenieACS NBI
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-nbi

[Install]
WantedBy=default.target

Выполните следующую команду, чтобы создать genieacs-fs службу.

sudo systemctl edit --force --full genieacs-fs

В редакторе вставьте нижеуказанный код.

[Unit]
Description=GenieACS FS
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-fs

[Install]
WantedBy=default.target

Выполните следующую команду, чтобы создать genieacs-ui службу.

sudo systemctl edit --force --full genieacs-ui

В редакторе вставьте нижеуказанный код.

[Unit]
Description=GenieACS UI
After=network.target

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/bin/genieacs-ui

[Install]
WantedBy=default.target

Задайте ротацию файлов журнала с помощью утилиты logrotate.

Создайте файл /etc/logrotate.d/genieacs и вставьте в него нижеуказанный код. Вы можете изменить политику ротации под ваши нужды.

/var/log/genieacs/*.log /var/log/genieacs/*.yaml {
    daily
    rotate 30
    compress
    delaycompress
    dateext
}

Добавьте службы в автозапуск системы, включите их и проверьте статус работы.

sudo systemctl enable genieacs-cwmp
sudo systemctl start genieacs-cwmp
sudo systemctl status genieacs-cwmp

sudo systemctl enable genieacs-nbi
sudo systemctl start genieacs-nbi
sudo systemctl status genieacs-nbi

sudo systemctl enable genieacs-fs
sudo systemctl start genieacs-fs
sudo systemctl status genieacs-fs

sudo systemctl enable genieacs-ui
sudo systemctl start genieacs-ui
sudo systemctl status genieacs-ui

На этом установка и настройка завершены.

Установка GenieACS через скрипт

Для упрощения установки был создан скрипт. В скрипте заложена установка Node.js (для загрузки потребуется утилита curl) и MongoDB. Если вам требуются определенные версии, а не те что устанавливает скрипт, то удалите из скрипта верхние строчки отвечающие за их установку.

Установка выполнялась на Ubuntu 18.04.5 LTS. В зависимости от дистрибутива может потребоваться внести изменения в скрипт.

Скачайте скрипт acs.sh удобным способом и сделайте его исполняемым. 

sudo chmod +x acs.sh

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

Запустите скрипт.

sudo ./acs.sh

Установка занимает около десяти минут, в процессе потребуется подтверждение действий выполняемых скриптом. Скрипт установит GenieACS и создаст системные файлы и каталоги для её работы.

По завершению установки будут выведены статус служб и версии Node.js и MongoDB.

Подробно прочитать за что отвечает каждая служба можно по ссылке.

На этом установка завершена.

Авторизация и подключение устройств к серверу GenieACS

По умолчанию Web-сервер доступен по адресу 127.0.01:3000. Не снимая галочки нажмите ABRACADABRA, далее нажмите Log in Логин и пароль по умолчанию admin/admin.

В настройках TR-69 (CWMP) на CPE укажите адрес сервера с портом 7547. В нашем случае, IP-адрес сервера 192.168.1.210.

После применение настроек на странице Devices в GenieACS, будет отображаться роутер SNR-CPE.

При нажатии на роутер SNR-CPE из списка Devices, откроется окно конфигурации с параметрами для удаленного администрирования. 

Более подробная информация по кастомизации сервера есть на официальном сайте: https://genieacs.com/
  • No labels