Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


Page properties
idstatus


Описание

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

Info

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

Также для упрощения установки был создан скрипт, выполните установку подходящим для вас способом.

...


Note
Info

Для работы GenieACS потребуется Node.js

10

v12.

x

13 или выше и MongoDB

3

v3.6 или выше. 

Установка GenieACS

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

Expand
titleИнструкция по ручной установке
Установка


Info

В данной инструкции описан процесс установки  непосредственно GenieACS, подразумевая, что Node.js, MongoDB и NPM менеджер в системе уже установлены. 

  1. Для начала установите из GenieACS из NPM.

    Code Block
    languagebash
    themeEclipse
    sudo npm install -g genieacs@1.2.5
    


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

    Code Block
    languagebash
    themeEclipse
    sudo useradd --system --no-create-home --user-group genieacs


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

    Code Block
    languagebash
    themeEclipse
    mkdir /opt/genieacs
    mkdir /opt/genieacs/ext
    chown genieacs:genieacs /opt/genieacs/ext 


  4. Создайте

файл 
  1. файл /opt/genieacs/genieacs.

env
  1. env для хранения параметров конфигурации, которые передаются GenieACS в качестве переменных сред и через редактор вставьте в него нижеуказанный текст.

Вы
  1.  Вы можете изменить значения переменных сред под ваши нужды, они описаны на сайте разработчика.

    Code Block
    languagebash
    themeEclipse
    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 


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

    Code Block
    languagebash
    themeEclipse
    sudo chown genieacs:genieacs /opt/genieacs/genieacs.env
    sudo chmod 600 /opt/genieacs/genieacs.env 
Создать

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

    Code Block
    languagebash
    themeEclipse
    mkdir /var/log/genieacs
    chown genieacs:genieacs /var/log/genieacs 


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

создать 
  1. создать genieacs-

cwmp
  1. cwmp службу.

    Code Block
    languagebash
    themeEclipse
    sudo systemctl edit --force --full genieacs-cwmp 


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

    Code Block
    languagebash
    themeEclipse
    [Unit]
    Description=GenieACS CWMP
    After=network.target
     
    [Service]
    User=genieacs
    EnvironmentFile=/opt/genieacs/genieacs.env
    ExecStart=/usr/bin/genieacs-cwmp
     
    [Install]
    WantedBy=default.targe 


  3. Выполните следующую команду, чтобы

создать 
  1. создать genieacs-

nbi
  1. nbi службу.

    Code Block
    languagebash
    themeEclipse
    sudo systemctl edit --force --full genieacs-nbi 


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

    Code Block
    languagebash
    themeEclipse
    [Unit]
    Description=GenieACS NBI
    After=network.target
     
    [Service]
    User=genieacs
    EnvironmentFile=/opt/genieacs/genieacs.env
    ExecStart=/usr/bin/genieacs-nbi
     
    [Install]
    WantedBy=default.target 



  3. Выполните следующую команду, чтобы

создать 
  1. создать genieacs-

fs
  1. fs службу.

    Code Block
    languagebash
    themeEclipse
    sudo systemctl edit --force --full genieacs-fs


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

    Code Block
    languagebash
    themeEclipse
    [Unit]
    Description=GenieACS FS
    After=network.target
     
    [Service]
    User=genieacs
    EnvironmentFile=/opt/genieacs/genieacs.env
    ExecStart=/usr/bin/genieacs-fs
     
    [Install]
    WantedBy=default.target 


  3. Выполните следующую команду, чтобы

создать 
  1. создать genieacs-

ui
  1. ui службу.

    Code Block
    languagebash
    themeEclipse
    sudo systemctl edit --force --full genieacs-ui 


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

    Code Block
    languagebash
    themeEclipse
    [Unit]
    Description=GenieACS UI
    After=network.target
     
    [Service]
    User=genieacs
    EnvironmentFile=/opt/genieacs/genieacs.env
    ExecStart=/usr/bin/genieacs-ui
     
    [Install]
WantedBy=default.target

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

    Создайте

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

    Code Block
    languagebash
    themeEclipse
    /var/log/genieacs/*.log /var/log/genieacs/*.yaml {
        daily
        rotate 30
        compress
        delaycompress
        dateext
    } 


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

    Code Block
    languagebash
    themeEclipse
    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 и npm ) и MongoDB.  Если вам требуются определенные версии, а не те что устанавливает скрипт, то удалите из скрипта верхние строчки отвечающие за их установку, либо скорректируйте их под свои нужды.

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


Expand
titleИнструкция по
установке через скрипт

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

Code Block
languagebash
themeEclipse
sudo chmod +x acs.sh

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

Expand
titleСодержимое скрипта


Code Block
languagebash
themeMidnight
linenumberstrue
#!/bin/sh
#logs
genieacs_setup_errors=/var/log/genieacs_setup_errors
genieacs_setup_status=/var/log/genieacs_setup_status
exec 2>$genieacs_setup_errors
#
#
#
#
apt update
#
### Install curl ###
apt install -y curl
#
## Install NodeJS ###
cd ~
curl -sL https://deb.nodesource.com/setup_20.x -o nodesource_setup.sh
chmod +x nodesource_setup.sh
bash nodesource_setup.sh
apt install -y nodejs
apt install -y npm --global
#
### Install libssl1.1 ###
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
apt update
apt install -y libssl1.1
#
### Install MongoDB actual version for ubuntu 20.04 ###
apt install -y gnupg
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
   --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
## for ubuntu 22.04 ##
#echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list 
## for actual version for ubuntu 20.04 ##
apt-get update
apt install -y mongodb-org 
#if you want install specific release 
#apt install -y mongodb-org=7.0.6 mongodb-org-database=7.0.6 mongodb-org-server=7.0.6 mongodb-mongosh=7.0.6 mongodb-org-mongos=7.0.6 mongodb-org-tools=7.0.6 #(for release 7.0.6)
systemctl start mongod.service
systemctl enable mongod
#
#
#
#
### Install GenieACS ###
npm install -g genieacs@1.2.5
sudo useradd --system --no-create-home --user-group genieacs
mkdir /opt/genieacs
mkdir /opt/genieacs/ext
chown genieacs:genieacs /opt/genieacs/ext
cd /opt/genieacs && touch genieacs.env
echo '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' | tee -a /opt/genieacs/genieacs.env
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
cd /etc/systemd/system/
touch genieacs-cwmp.service
touch genieacs-nbi.service
touch genieacs-fs.service
touch genieacs-ui.service
echo '[Unit]
Description=GenieACS CWMP
After=network.target

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

[Install]
WantedBy=default.target' | sudo tee -a /etc/systemd/system/genieacs-cwmp.service

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

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

[Install]
WantedBy=default.target' | sudo tee -a /etc/systemd/system/genieacs-nbi.service

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

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

[Install]
WantedBy=default.target' | sudo tee -a /etc/systemd/system/genieacs-fs.service

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

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

[Install]
WantedBy=default.target' | sudo tee -a /etc/systemd/system/genieacs-ui.service

cd /etc/logrotate.d
touch genieacs
echo '/var/log/genieacs/*.log /var/log/genieacs/*.yaml {
     daily
     rotate 30
     compress
     delaycompress
     dateext
     }' | sudo tee -a /etc/logrotate.d/genieacs
systemctl daemon-reload
systemctl enable genieacs-cwmp
systemctl start genieacs-cwmp
systemctl enable genieacs-nbi
systemctl start genieacs-nbi
systemctl enable genieacs-fs
systemctl start genieacs-fs
systemctl enable genieacs-ui
systemctl start genieacs-ui
#check
echo 'version nodejs' && nodejs -v | tee $genieacs_setup_status
systemctl -l --no-pager status mongod | tee -a $genieacs_setup_status
mongo --eval 'db.runCommand({ connectionStatus: 1 })' | tee -a $genieacs_setup_status
systemctl -l --no-pager status genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui | tee -a $genieacs_setup_status


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

Code Block
languagebash
themeEclipse
sudo ./acs.sh


Установка занимает

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

некоторое время, в зависимости от характеристик оборудования (в среднем не более 3-5 минут).  Скрипт установит GenieACS и создаст системные файлы и каталоги для её работы.

По завершению установки будут выведены

статус служб и

установленные версии Node.js и MongoDB, а так же статусы служб GenieACS.

Image Removed


Image Added

Подробно

прочитать

ознакомиться, за что отвечает каждая служба можно

по ссылке.

по ссылке.

Скриптом так же будут созданы два файла-лога:

/var/log/genieacs_setup_errors - куда записываются все ошибки, возникшие в ходе работы скрипта. С их помощью будет легче разобраться, если скрипт отработал неправильно.

/var/log/genieacs_setup_status - куда продублирована информация о версиях Node.js, MongoDB, GenieACS. А так же статусах работы их служб.


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

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

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

...

- логин и пароль по умолчанию admin/admin.

...

Image Added

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

...

Image Added

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

...

info

Image Added

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

Image Removed

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