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/
Muito bom, simplesmente copiando e colando funcionou.
O único detalhe foi que no proxmox é preciso mudar a cpu da vm para host como os amigos mencionaram nos comentários.
Mongodb 7.0 não funcionando no VMWARE 6.5 usando VM debian 12. Vi em outros foruns que para reverter esse problema, seria utilizar o MongoDB 5.0.
O melhor Blog de sobre Linux, parabens mestre
Como consigo exibir mais de dispositivos, acima disso nao consigo mais exibir, onde altero essa configuração ?
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 -_-
Se estiver utilizando proxmox, vc vai em Hardware>CPU>Tipo=HOST
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.
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
Achei o problema. Alguns recursos de processador que minha VM estava utilizando, estavam faltando. Troquei o sistema de virtualização e funcionou. vlw
Buenas. Teria como compartilhar a solução?
Aparentemente tem relação com suporte a AVX do processador, em alguns casos mudando o tipo do processador para “host” resolve. No meu caso o processador fisico não tem suporte ao AVX. Então sigo sem solução até o momento.
Boa tarde, estou passando pela mesma dificuldade. Poderia explicar o que estava faltando?
Obrigado
Eu uso proxmox e estava com o mesmo problema, alterei o cpu da vm para host, e resolveu.
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
Da da mesma! rsrs