Связаться с менеджером

Главная > Статьи > Пост инсталяционная настройка GenieACS. Конфигурирование systemd.

Пост инсталяционная настройка GenieACS. Конфигурирование systemd.

Пост инсталяционная настройка GenieACS. Конфигурирование systemd.

Папки, права, роли

Создаём пользователя от которого будут работать демоны GenieACS

root@shelter:~$ useradd --system --no-create-home --user-group genieacs

Для скриптов расширений ACS и конфигурационных файлов нам нужна будет рабочая директория.

root@shelter:~$ mkdir /opt/genieacs
root@shelter:~$ mkdir /opt/genieacs/ext
root@shelter:~$ chown genieacs:genieacs /opt/genieacs/ext

Создадим файл настроек:

root@shelter:~$ vim /opt/genieacs/genieacs.env

И сохраним в него минимально необходимые параметры:

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
GENIEACS_EXT_DIR=/opt/genieacs/ext
GENIEACS_UI_JWT_SECRET=secret

Полный список переменных можно посмотреть на официальной Wiki – Environment Variables.

Назначим владельца и права:

root@shelter:~$ chown genieacs:genieacs /opt/genieacs/genieacs.env
root@shelter:~$ chmod 600 /opt/genieacs/genieacs.env

Для log-файлов нам понадобится отдельная папка:

root@shelter:~$ mkdir /var/log/genieacs
root@shelter:~$ chown genieacs:genieacs /var/log/genieacs

Стартовые скрипты (systemd unit)

Создадим для каждого демона GenieACS конфигурационные файлы systemd (юниты). Укажем в них на наш файл с переменными для каждого демона, что бы они использовали заданные настройки.

Каждый сервис будет иметь два потока логирования: access.log и process.log. Access.log сконфигурируем для записи в /var/log/genieacs/, а лог процесса направим в journald. Для просмотра логов можно использовать journalctl.

Отметьте. Если команда systemctl edit –force –full выдаёт ошибку, можно создать юниты вручную.

Создадим genieacs-cwmp сервис:

root@shelter:~$  systemctl edit --force --full genieacs-cwmp

Со следующим содержимым:

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

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

[Install]
WantedBy=default.target

Создадим genieacs-nbi сервис:

root@shelter:~$ systemctl edit --force --full genieacs-nbi

Со следующим содержимым:

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

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

[Install]
WantedBy=default.target

Создадим genieacs-fs сервис:

root@shelter:~$ systemctl edit --force --full genieacs-fs

Со следующим содержимым:

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

[Service]
User=genieacs
EnvironmentFile=/opt/genieacs/genieacs.env
ExecStart=/usr/local/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/local/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
}

Ну и финальные шаги, разрешим автостарт и запустим все сервисы:

root@shelter:~$ systemctl enable genieacs-cwmp
root@shelter:~$ systemctl start genieacs-cwmp
root@shelter:~$ systemctl status genieacs-cwmp

root@shelter:~$ systemctl enable genieacs-nbi
root@shelter:~$ systemctl start genieacs-nbi
root@shelter:~$ systemctl status genieacs-nbi

root@shelter:~$ systemctl enable genieacs-fs
root@shelter:~$ systemctl start genieacs-fs
root@shelter:~$ systemctl status genieacs-fs

root@shelter:~$ systemctl enable genieacs-ui
root@shelter:~$ systemctl start genieacs-ui
root@shelter:~$ systemctl status genieacs-ui

Проверяем вывод systemctl status что всё запустилось и работает без ошибок.

Готово. ACS работает.

P.S. После смены настроек юнитов нужно перегрузить демона что бы перечитал конфигурацию:

systemctl daemon-reload
Пост инсталяционная настройка GenieACS. Конфигурирование systemd.

Что дальше?

Открываем панель управления роутера на Wive-NG.

Во вкладке Сервисы-CWMP – включаем его.

В пункте адрес сервера прописываем адрес и порт, на котором висит genieacs-cwmp демон: http://ip-addr:7457

Управление сервером осуществляется через Web панель управления демона genieacs-ui и доступна по адресу http://ip-addr:3000

Реквизиты доступа по умолчанию admin:admin

Авторизовавшись, на вкладке Devices мы увидим наш сконфигурированный ранее Wive-NG роутер. Кликнув на него, мы попадём на страницу устройства, здесь более 300 параметров, кроме настроек маршрутизатора, доступны диагностические инструменты и лог-файл.

Пост инсталяционная настройка GenieACS. Конфигурирование systemd.

Изменение параметров помещается в очередь. Которую впоследствии или сразу можно применить или отменить.

На основе этих настроек можно создать файл для auto-provision. И новые устройства автоматически будут настраиваться определённым образом.

0 комментариев
Что бы оставить комментарий вам необходимо авторизоваться