Guia Completo de Instalação e Configuração do GenieACS em Debian 12 Bookworm


Cliente TR-069 (Relatório Técnico 069) é uma implementação do CWMP (CPE WAN Management Protocol) para gerenciar dispositivos de usuários finais de forma centralizada. Este CWMP é executado em uma rede IP usando HTTP ou HTTPS para se comunicar com dispositivos ACS (Sistema de configuração automática), onde ACS é um sistema usado para monitorar, configurar e atualizar o firmware de dispositivos remotos.

Em geral, a função do TR-069 é mais amplamente usada em ISPs para gerenciamento de dispositivos do usuário final. Alguns dispositivos que estão atualmente começando a implementar as funções do TR-069, como FTTH CPE/ONT, WIMAX CPE, também podem ser usados ​​para monitoramento de VoIP ou CFTV. E no próprio MikroTik, a função Cliente TR-069 também foi adicionada a partir do RouterOS versão 6.38.

Leitura recomendada:
Configurando interface de rede no Debian

Requisitos Debian 12 Bookworm

Instalação do Debian 12 Bookworm limpa passo-a-passo

Melhorando o seu BASH

Para melhorar seu bash e entender o comando a seguir, visite: Como melhorar a produtividade no seu Debian após a instalação

# apt -y install wget; wget remontti.com.br/debian; bash debian; su -

Repositório

Adicione contrib non-free aos repositórios

# vim /etc/apt/sources.list

Ajuste:

deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free

deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free

deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free
deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free

Atualize o repositório:

# apt update

Se tiver algum pacote para atualização também faça:

# apt upgrade -y

Instale os firmware-linux*

# apt install firmware-linux firmware-linux-free firmware-linux-nonfree -y

Reinicie seu servidor para carregar os novos módulos do kernel

# reboot

Pacotes requisitos

# apt -y install gnupg gnupg2 curl wget rsyslog

Repositório MongoDB

# curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
 gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

# echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
 http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" \
 > /etc/apt/sources.list.d/mongodb-org-7.0.list

Recarregue o repositório, e instale o MongoDB vamos

# apt update
# apt -y install mongodb-org 

Ative o serviço para iniciar com o boot, inicie o serviço e verifique se o mesmo iniciou com êxito.

# systemctl enable mongod
# systemctl start mongod
# systemctl status mongod

Node.js

# apt -y install nodejs npm --no-install-recommends
# apt -y install node-mongodb

Instalação do GenieACS

Procure se o pacote existe:

# npm search -g genieacs
NAME                   | DESCRIPTION    | AUTHOR    | DATE       | VERSION | KEYWORDS       
genieacs               | A TR-069 Auto… | =zaidka   | 2024-03-28 | 1.2.12  | TR-069 CWMP ACS
@anlix-io/genieacs-sim | TR-069 client… | =anlix-io | 2024-01-15 | 1.14.0  | TR-069 CWMP ACS Simulator
genieacs-sim           | TR-069 client… | =zaidka   | 2017-02-05 | 0.9.0   | TR-069 CWMP ACS

Instale o genieacs

# npm install -g genieacs
added 220 packages in 5s

18 packages are looking for funding
  run `npm fund` for details

Crie um usuário do sistema para executar daemons GenieACS

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

Crie um diretório para salvar extensões e arquivo de ambiente
Usaremos o diretório /opt/genieacs/ext/ para armazenar scripts de extensão (se houver).

# mkdir /opt/genieacs
# mkdir /opt/genieacs/ext

Crie o arquivo /opt/genieacs/genieacs.envpara que irá conter as opções de configuração, que passamos ao GenieACS como variáveis de ambiente.

# vim /opt/genieacs/genieacs.env

Adicione:

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

Gere um segredo JWT seguro e anexe a /opt/genieacs/genieacs.env:

# node -e "console.log(\"GENIEACS_UI_JWT_SECRET=\" + require('crypto').\
 randomBytes(128).toString('hex'))" \
 >> /opt/genieacs/genieacs.env

Defina a propriedade e as permissões do arquivo:

# chown genieacs: /opt/genieacs -R
# chmod 600 /opt/genieacs/genieacs.env

Criar diretório de logs

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

Configure os serviços no systemd

# systemctl edit --force --full genieacs-cwmp

Adicione:

[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
# systemctl edit --force --full genieacs-nbi

Adicione:

[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
# systemctl edit --force --full genieacs-fs

Adicione:

[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
# systemctl edit --force --full genieacs-ui

Adicione:

[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

Configure o logrotate para rotação dos log gerados

# vim /etc/logrotate.d/genieacs

Adicione:

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

Ative e inicie serviços, e revise a mensagem de status de cada um para verificar se os serviços estão sendo executados com êxito.

# systemctl daemon-reload
# systemctl enable genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
# systemctl start genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
# systemctl status genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui --no-pager
● genieacs-cwmp.service - GenieACS CWMP
     Loaded: loaded (/etc/systemd/system/genieacs-cwmp.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-04-10 12:09:13 -03; 44s ago
   Main PID: 9695 (node)
      Tasks: 25 (limit: 4645)
     Memory: 101.1M
        CPU: 1.541s
     CGroup: /system.slice/genieacs-cwmp.service
             ├─9695 node /usr/local/bin/genieacs-cwmp
             ├─9725 /usr/bin/node /usr/local/bin/genieacs-cwmp
             └─9730 /usr/bin/node /usr/local/bin/genieacs-cwmp

abr 10 12:09:13 deb12-rr-flow systemd[1]: Started genieacs-cwmp.service - GenieACS CWMP.
abr 10 12:09:14 deb12-rr-flow genieacs-cwmp[9695]: 2024-04-10T15:09:14.701Z [INFO] genieacs-cwmp starting; …80f66"
abr 10 12:09:16 deb12-rr-flow genieacs-cwmp[9695]: 2024-04-10T15:09:16.465Z [INFO] Worker listening; pid=97…t=7547
abr 10 12:09:16 deb12-rr-flow genieacs-cwmp[9695]: 2024-04-10T15:09:16.475Z [INFO] Worker listening; pid=97…t=7547

● genieacs-nbi.service - GenieACS NBI
     Loaded: loaded (/etc/systemd/system/genieacs-nbi.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-04-10 12:09:13 -03; 44s ago
   Main PID: 9696 (node)
      Tasks: 25 (limit: 4645)
     Memory: 98.5M
        CPU: 1.639s
     CGroup: /system.slice/genieacs-nbi.service
             ├─9696 node /usr/local/bin/genieacs-nbi
             ├─9731 /usr/bin/node /usr/local/bin/genieacs-nbi
             └─9737 /usr/bin/node /usr/local/bin/genieacs-nbi

abr 10 12:09:13 deb12-rr-flow systemd[1]: Started genieacs-nbi.service - GenieACS NBI.
abr 10 12:09:14 deb12-rr-flow genieacs-nbi[9696]: 2024-04-10T15:09:14.710Z [INFO] genieacs-nbi starting; pi…80f66"
abr 10 12:09:16 deb12-rr-flow genieacs-nbi[9696]: 2024-04-10T15:09:16.497Z [INFO] Worker listening; pid=973…t=7557
abr 10 12:09:16 deb12-rr-flow genieacs-nbi[9696]: 2024-04-10T15:09:16.523Z [INFO] Worker listening; pid=973…t=7557

● genieacs-fs.service - GenieACS FS
     Loaded: loaded (/etc/systemd/system/genieacs-fs.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-04-10 12:09:13 -03; 44s ago
   Main PID: 9697 (node)
      Tasks: 25 (limit: 4645)
     Memory: 88.0M
        CPU: 1.561s
     CGroup: /system.slice/genieacs-fs.service
             ├─9697 node /usr/local/bin/genieacs-fs
             ├─9723 /usr/bin/node /usr/local/bin/genieacs-fs
             └─9724 /usr/bin/node /usr/local/bin/genieacs-fs

abr 10 12:09:13 deb12-rr-flow systemd[1]: Started genieacs-fs.service - GenieACS FS.
abr 10 12:09:14 deb12-rr-flow genieacs-fs[9697]: 2024-04-10T15:09:14.676Z [INFO] genieacs-fs starting; pid=…80f66"
abr 10 12:09:16 deb12-rr-flow genieacs-fs[9697]: 2024-04-10T15:09:16.386Z [INFO] Worker listening; pid=9723…t=7567
abr 10 12:09:16 deb12-rr-flow genieacs-fs[9697]: 2024-04-10T15:09:16.497Z [INFO] Worker listening; pid=9724…t=7567

● genieacs-ui.service - GenieACS UI
     Loaded: loaded (/etc/systemd/system/genieacs-ui.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-04-10 12:09:13 -03; 44s ago
   Main PID: 9698 (node)
      Tasks: 25 (limit: 4645)
     Memory: 114.1M
        CPU: 2.003s
     CGroup: /system.slice/genieacs-ui.service
             ├─9698 node /usr/local/bin/genieacs-ui
             ├─9777 /usr/bin/node /usr/local/bin/genieacs-ui
             └─9778 /usr/bin/node /usr/local/bin/genieacs-ui

abr 10 12:09:13 deb12-rr-flow systemd[1]: Started genieacs-ui.service - GenieACS UI.
abr 10 12:09:15 deb12-rr-flow genieacs-ui[9698]: 2024-04-10T15:09:15.244Z [INFO] genieacs-ui starting; pid=…80f66"
abr 10 12:09:16 deb12-rr-flow genieacs-ui[9698]: 2024-04-10T15:09:16.757Z [INFO] Worker listening; pid=9777…t=3000
abr 10 12:09:16 deb12-rr-flow genieacs-ui[9698]: 2024-04-10T15:09:16.763Z [INFO] Worker listening; pid=9778…t=3000
Hint: Some lines were ellipsized, use -l to show in full.

Acesse em seu navegador: http://IP:3000

Clique em: ABRACADABRA!

Clique em: Open Sesame!

Entre com: admin/admin

Grupo do telegram: ACS/CWMP – TR069 – Brasil (PT-Br)

Gostou? Quer ajudar manter o blog? 🙂

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Fonte: https://genieacs.com/

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

12 Resultados

  1. THIAGO N MOREIRA disse:

    Como consigo exibir mais de dispositivos, acima disso nao consigo mais exibir, onde altero essa configuração ?

  2. Fábio disse:

    Mesmo problema aqui: mongodb não inicia por erro do cpu, vi que só é possível rodar mongo 5.x pra frente em cpus Sandy Bridge e posteriores… Vou ver se consigo algum hardware mais moderno -_-

  3. Ciro disse:

    poderia fazer um post complementar ensinando como usar e configurar o genieacs? Exemplos de como editar os gráficos, página inicial, página dos dispositivos personalizada, exemplos de scripts de provisionamentos, preset, virtal parâmetros etc … a documentação do genieacs é incompleta e existe pouco material.

  4. Frederico disse:

    Olá, obrigado por compartilhar esse tutorial conosco!
    Surgiu um problema quanto ao processo do mongodb, ele não consegue inicializar. Não localizei nenhum log em /var/mongodb… já pegou um caso parecido?

    Segue a saída do systectl status mongod:

    root@GENIEACS[/tmp]# systemctl status mongod
    × mongod.service – MongoDB Database Server
    Loaded: loaded (/lib/systemd/system/mongod.service; enabled; preset: enabled)
    Active: failed (Result: signal) since Mon 2024-05-20 15:12:50 -03; 5s ago
    Duration: 11ms
    Docs: https://docs.mongodb.org/manual
    Process: 4829 ExecStart=/usr/bin/mongod –config /etc/mongod.conf (code=killed, signal=ILL)
    Main PID: 4829 (code=killed, signal=ILL)
    CPU: 9ms

  5. Eberty Rodrigues disse:

    Bom dia Mestre, seus tutoriais são os melhores. Nos ajuda muito. Quero fazer uma observação.
    Atual: # echo “deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
    http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main” \
    > /etc/apt/sources.list.d/mongodb-org-7.0.list

    não seria assim:
    # echo “deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
    http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main” | \
    > tee /etc/apt/sources.list.d/mongodb-org-7.0.list

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *