Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
instalacao_on_premise_flashman [02/05/2019 21:15]
superuser
instalacao_on_premise_flashman [15/02/2024 19:43] (atual)
superuser [Requisitos de hardware]
Linha 1: Linha 1:
-===== Instalação ​diretamente no servidor =====+===== Requisitos de hardware e software para a Instalação ​do servidor ​Flashman Local =====
  
-=== Sistemas operacionais testados: Ubuntu 16.04 e 18.04 === +==== Sistemas operacionais testados ====
-=== Requisitos de hardware: Processador quad core (i5 ou superior). 8GB RAM. 50GB HDD disponíveis. === +
-  - Atualizar repositórios através do comando <​code>​sudo apt-get update</​code>​ +
-  - IMPORTANTE! Instalar e configurar o NTP +
-    - Exemplo para Ubuntu 16.04: <​code>​ +
-sudo timedatectl set-timezone America/​Sao_Paulo +
-sudo timedatectl set-ntp on +
-</​code>​ +
-    - Aguardar um minuto e verificar status de sincronização através do comando <​code>​timedatectl</​code>​ +
-  - Instalar o Nginx (versão 1.10.3 ou superior) +
-    - Insira o seguinte comando: <​code>​ +
-sudo apt-get install nginx +
-</​code>​ +
-  - Instalar o MongoDB (versão 3.2 ou superior) +
-    - Para instalar utilizando o Ubuntu +
-      - Insira os seguintes comandos para Ubuntu 18.04: <​code>​ +
-sudo apt-key adv --keyserver hkp://​keyserver.ubuntu.com:​80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 +
-echo "deb [ arch=amd64 ] https://​repo.mongodb.org/​apt/​ubuntu bionic/​mongodb-org/​4.0 multiverse"​ | sudo tee /​etc/​apt/​sources.list.d/​mongodb-org-4.0.list +
-sudo apt-get update +
-sudo apt-get install -y mongodb-org +
-</​code>​ +
-      - Insira os seguintes comandos para Ubuntu 16.04: <​code>​ +
-sudo apt-key adv --keyserver hkp://​keyserver.ubuntu.com:​80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 +
-echo "deb [ arch=amd64,​arm64 ] https://​repo.mongodb.org/​apt/​ubuntu xenial/​mongodb-org/​4.0 multiverse"​ | sudo tee /​etc/​apt/​sources.list.d/​mongodb-org-4.0.list +
-sudo apt-get update +
-sudo apt-get install -y mongodb-org +
-</​code>​ +
-    - Inicie o serviço do MongoDB através dos comandos: <​code>​ +
-sudo systemctl enable mongod +
-sudo systemctl start mongod +
-</​code>​ +
-    - Para instalar em sistemas operacionais diferentes do Ubuntu, veja a documentação em https://​docs.mongodb.com/​manual/​installation/​ +
-    - Atenção! Não alterar a porta padrão 27017 +
-  - Instalar NodeJS (versão 6.4.0 ou superior) +
-    - Para instalar utilizando o Ubuntu +
-      - Insira os seguintes comandos: <​code>​ +
-curl -sL https://​deb.nodesource.com/​setup_6.x | sudo -E bash - +
-sudo apt-get install -y nodejs +
-</​code>​ +
-      - Para instalar em sistemas operacionais diferentes do Ubuntu, veja a documentação em https://​nodejs.org/​en/​download/​package-manager/​ +
-  - Instalar pacotes essenciais do Ubuntu: <​code>​sudo apt-get install build-essential</​code>​ +
-  - Instalar o instalador de pacotes do NodeJS: <​code>​sudo apt-get install npm</​code>​ +
-  - Instalar o PM2 através do comando: <​code>​ +
-npm install pm2 -g +
-</​code>​ +
-  - Instalar o extrator de .ZIP através do comando: <​code>​sudo apt-get install unzip</​code>​ +
-  - Extraia o arquivo .ZIP do pacote contendo o Flashman no diretório de sua preferência. Como exemplo eis o comando: <​code>​ +
-mkdir ./​flashman +
-unzip flashman.zip -d ./​flashman/</​code>​ +
-  - No diretório extraído do Flashman, execute o seguinte comando: <​code>​ +
-npm install +
-</​code>​ +
-  - Configure o Nginx para receber e autorizar a comunicação HTTPS com o Flashman através do seguinte trecho de código de exemplo: <​code>​ +
-server { +
-    listen 443 ssl;+
  
-    server_name meuflashmandeexemplo.dominio.com;+Ubuntu 20.04 22.04 LTS - versão SERVER, Debian 10 e 11 LTS - versão SERVER.
  
-    location / { +==== Requisitos de hardware ====
-        proxy_redirect http:// https://;+
  
-        proxy_set_header X-Real-IP $remote_addr;​ +Mínimo: 4 núcleos de processamento. 8GB RAM. 50GB HDD livres
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;​ +
-        proxy_set_header X-NginX-Proxy true; +
-        proxy_set_header Upgrade $http_upgrade;​ +
-        proxy_set_header Connection '​upgrade';​ +
-        proxy_set_header Host $host;+
  
-        proxy_pass http://localhost:8000; +Recomendado 
-        ​proxy_http_version 1.1;+            Até um total de 12.000 CPES, 8 núcleos de processamento 8GB RAM 50GB HDD livres ​       
 +            Até um total de 24.000 CPES, 8 núcleos de processamento 16GB RAM 50GB HDD livres 
 +            Até um total de 48.000 CPES, 12 núcleos de processamento 32GB RAM 50GB HDD livres 
 +              
 +             Obs.Após 48k CPEs é necessário a utilização de outra máquina ou VM  
 +             Obs.2: Para modelos híbridos, é necessário uma verificação com nosso time de engenharia para uma melhor composição da(s) máquina(s)  
 +==== Requisito de rede ====
  
-        proxy_cache_bypass $http_upgrade;​+IP real público. Será necessário para os aplicativos FlashApp acessarem o roteador de qualquer rede
  
-    }+==== Requisitos de Domínio ====
  
-    client_max_body_size 32M; +Criar um mapeamento ​de domínio para o IP escolhidoExemploflashman.provedor.com.br
-+
-</​code>​ +
-    - O trecho ​de código acima pode ser configurado a partir do comando <​code>​nano /​etc/​nginx/​sites-available/​default</​code>​ +
-    - Substitua a variável "​server_name"​ pelo domínio ​completo de seu servidor +
-    - Recarregue o serviço Nginx através do comando: <​code>​sudo systemctl reload nginx</​code>​ +
-  - Use o gerador de certificados gratuitos Certbot ​para gerar certificado HTTPS para o FlashmanSiga os passos<​code>​ +
-sudo apt-get update +
-sudo apt-get install software-properties-common +
-sudo add-apt-repository ppa:​certbot/​certbot +
-sudo apt-get update +
-sudo apt-get install python-certbot-nginx+
  
-sudo certbot --nginx +         ​ATENÇÂO: ​ 
-</​code>​ +         Caso provedor deseje criar um  domínio ​com autorização da Autoridade ​de Certificação (CAACertificate Authority Authorization), será necessário autorizar ​geração ​de certificado ​para a "LET's ENCRYPT", 
-    - Siga os passos informados pelo comando certbot --nginx +         já que servidores FLashman utilizam certificados emitidos através da "LET's ENCRYPT".  
-    - Mais informações sobre certbot em: https://​certbot.eff.org/​ +         ​
-  - Após gerar o certificado no passo anterior, insira uma cópia diretamente no diretório raiz do Flashman através dos comandos: <​code>​ +
-cp /​etc/​letsencrypt/​live/<<​meuflashmandeexemplo.dominio.com>>/​fullchain.pem <<​caminho completo>>/​flashman/​certs/​cert.pem +
-cp /​etc/​letsencrypt/​live/<<​meuflashmandeexemplo.dominio.com>>/​privkey.pem <<​caminho completo>>/​flashman/​certs/​key.pem +
-chown <<​usuário>>​ <<​caminho completo>>/​flashman/​certs/​cert.pem <<​caminho completo>>/​flashman/​certs/​key.pem +
-chmod 400 <<​caminho completo>>/​flashman/​certs/​cert.pem <<​caminho completo>>/​flashman/​certs/​key.pem +
-</​code>​ +
-    - Substitua o valor <<​meuflashmandeexemplo.dominio.com>>​ pelo domínio completo ​de seu servidor cujo o certificado foi gerado +
-    ​Substitua o <<​caminho completo>>​ pelo caminho até o diretório raiz do Flashman. +
-    - Substitua o <<​usuário>>​ pelo usuário do sistema que irá executar o servidor do Flashman (exemplo: localuser) +
-  - Insira ​seguinte linha no final do arquivo /​etc/​letsencrypt/​renewal/​meuflashmandeexemplo.dominio.com.conf : <​code>​ +
-renew_hook = <<​caminho completo>>/​flashman/​scripts/​cert-deploy-hook.sh <<​caminho completo>>/​flashman/​certs meuflashmandeexemplo.dominio.com <<​usuário>>​ +
-</​code>​ +
-    - Verifique se o arquivo <<​caminho completo>>/​flashman/​scripts/​cert-deploy-hook.sh possui permissões ​de execução +
-    - Substitua o valor "​meuflashmandeexemplo.dominio.com"​ pelo domínio completo de seu servidor cujo o certificado ​foi gerado +
-    - Substitua o <<​caminho completo>>​ pelo caminho até o diretório raiz do Flashman. +
-    - Substitua o <<​usuário>>​ pelo usuário do sistema que irá executar o servidor do Flashman (exemplo: localuser) +
-  - Abra o arquivo environment.config.json e adicione ​variável FLM_CERT_MQTT_DIR com o caminho para o certificado certbot recém gerado. Exemplo: <​code>​ +
-+
-  "​apps":​ [{ +
-      "​name": ​"flashman", +
-      "script":​ "​bin/​www",​ +
-      "​log_date_format":​ "​YYYY-MM-DD HH:mm Z", +
-      "​autorestart":​ true, +
-      "​env":​ { +
-        "​production":​ true, +
-        "​TZ":​ "​America/​Sao_Paulo",​ +
-        "​FLM_IMG_RELEASE_DIR": ​"./​public/​firmwares/",​ +
-        "​FLM_ALLOW_DEV_UPDATE_REST_DATA":​ false, +
-        "​FLM_MONGODB_HOST":​ "​localhost",​ +
-        "​FLM_ADM_USER":​ "​admin",​ +
-        "​FLM_ADM_PASS":​ "​flashman",​ +
-        "​FLM_CERT_MQTT_DIR":​ "<<​caminho completo>>/​flashman/​certs"​ +
-      }, +
-      "​error_file":​ "/​dev/​stderr",​ +
-      "​out_file":​ "/​dev/​stdout",​ +
-      "​exec_mode":​ "​cluster"​ +
-    }] +
-+
-</​code>​ +
-    - Substitua o <<​caminho completo>>​ pelo caminho até o diretório raiz do Flashman. +
-  - No diretório principal do Flashman, inicie o serviço através do comando <​code>​pm2 start environment.config.json</​code>​ +
-  - Verifique se o serviço está em execução através do comando: <​code>​pm2 status</​code>​ +
-  - Deixe o serviço do Flashman auto renicializável através dos comandos executados no diretório principal do Flashman: <​code>​ +
-pm2 startup +
-pm2 save +
-</​code>​+
  
-==== Opcional: Backup dos dados na nuvem da Anlix ====+==== Requisitos de firewall ​====
  
-**Atenção! Entre em contato ​com a Anlix para obter os tokens ​de backup ​de dados na nuvem**+  ​Liberação de ICMP reply (ping) 
 +  ​Liberação da porta 9001 para o ip 45.77.115.7 (TCP) : Utilizada pelo processo de migração 
 +  * Liberação da porta ssh para o ip 177.38.99.106 
 +  * Liberação da porta 80 (TCP) : Para validação de certificados SSL via LetsEncrypt 
 +  * Liberação da porta 443 (TCP) : Para navegação da interface web e comunicação de gerência com os CPEs 
 +  * Liberação da porta 3478 (TCP) : Para uso de mecanismo de "​furo"​ de NAT via servidor STUN 
 +  * Liberação das portas 7547, 57547 (TCP) : Para uso do protocolo TR-069 no envio e recepção de comandos para as CPEs 
 +  * Liberação da porta 7567 (TCP) : Para download de firmwares no procedimento de atualização remota via TR-069 
 +  * Liberação da porta para comunicação MQTTS. A porta para MQTTS estará especificada no usuário de sua conta da Anlix 
 + 
 +==== Notas importantes ==== 
 + 
 +* Não recomendamos o uso de sistemas 32 bits em geralserá possi 
 + 
 +* O setup da máquina não pode ser um container, será necessário uma VM comum  
 + 
 +==== Procedimento de instalação ==== 
 + 
 +Preencher o formulário (https://​documentacao.anlix.io/​doku.php?​id=instalacao_on_premise_flashman) ​com as informações de acesso e ao servidor, em seguida abrir um ticket de atendimento ((21) 99835-2603) junto equipe de suporte ​Anlix
 +A equipe ​de suporte Anlix realizará toda a instalação e migração ​de dados que for necessária.  
 +Informação dos IPs **" 54.232.148.43 e 177.38.99.106"​** das máquinas de onde serão realizados os acessos ao servidor disponibilizado,​ para a liberação do provedor no seu controle de acesso. 
 + 
 + 
 +Atenção: O usuário disponibilizado para a configuração dos serviços da Anlix precisa ter permissão de root.
  
-O script de backup de dados do Flashman na nuvem da Anlix está localizado em: 
-<​code><<​caminho completo>>/​flashman/​scripts/​backup-flashman-onpremise-db.sh</​code>​ 
  
-O script de recuperação de dados do Flashman na nuvem da Anlix está localizado em: 
-<​code><<​caminho completo>>/​flashman/​scripts/​restore-flashman-onpremise-db.sh</​code>​