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/
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 -_-
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