- Created by kis-import-docs, last modified on Apr 26, 2024
Полезные ссылки | |||||
Чат SNR-CPE в telegram | Техническая поддержка | Приложение SNR-CPE Config в Google Play | Новостной канал SNR-CPE в telegram | ||
---|---|---|---|---|---|
Описание
GenieACS - это программное решение с открытым исходным кодом для удаленного управления устройствами по протоколу TR-069.
Данная инструкция адаптирована на русский язык с официального сайта разработчика, оригинал находится по ссылке.
Также для упрощения установки был создан скрипт, выполните установку подходящим для вас способом.
Для работы GenieACS потребуется Node.js v12.13 или выше и MongoDB v3.6 или выше.
Установка GenieACS
Ручная установка GenieACS
В данной инструкции описан процесс установки непосредственно GenieACS, подразумевая, что Node.js, MongoDB и NPM менеджер в системе уже установлены.
Для начала установите из GenieACS из 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]
Задайте ротацию файлов журнала с помощью утилиты 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 и npm ) и MongoDB. Если вам требуются определенные версии, а не те что устанавливает скрипт, то удалите из скрипта верхние строчки отвечающие за их установку, либо скорректируйте их под свои нужды.
Скачайте скрипт acs.sh удобным способом и сделайте его исполняемым.
sudo chmod +x acs.sh
Вы также можете самостоятельно создать файл, вставить в него код из скрипта через редактор и сделать его исполняемым.
#!/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
Запустите скрипт.
sudo ./acs.sh
Установка занимает некоторое время, в зависимости от характеристик оборудования (в среднем не более 3-5 минут). Скрипт установит GenieACS и создаст системные файлы и каталоги для её работы.
По завершению установки будут выведены установленные версии Node.js и MongoDB, а так же статусы служб GenieACS.
Подробно ознакомиться, за что отвечает каждая служба можно по ссылке.
Скриптом так же будут созданы два файла-лога:
/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.
В настройках TR-69 (CWMP) на CPE укажите адрес сервера с портом 7547. В нашем случае, IP-адрес сервера 192.168.1.210.
После применение настроек на странице Devices в GenieACS, будет отображаться роутер SNR-CPE.
При нажатии на роутер SNR-CPE из списка Devices, откроется окно конфигурации с параметрами для удаленного администрирования.
Более подробная информация по кастомизации сервера есть на официальном сайте: https://genieacs.com/