# Transferência Ambiente Compartilhado (Atende.Net) > > Documentação do passo a passo para realizar a transferência de um cliente para o ambiente compartilhado, Consorcios-01, Consorcios-02, etc.. > IMPORTANTE: Antes de prosseguir com os passos abaixo, garanta que todos os procedimento de configuração do ambiente definitivo foram executados conforme o manual: [`Configuração do Ambiente dos Consórcios`](./configuracao_ambiente_consorcio.md) Todos os passos abaixo são baseados no Checklist disponível em: [Manutenção Servidores - 15082024 v1.xlsx > TRANSFERIR Compartilhados NOVO](https://ipmcombr-my.sharepoint.com/:x:/g/personal/alexsandre_constantino_ipm_com_br/EV6nDzIq-xpFptwju2S9zG0Ba6iuVFZSv_rhhCXNnOI2sQ?e=bEuWtQ) que devem ser marcados como OK na planilha conforme a execução! ATENÇÃO: Seguir os passos da forma que estão descritos, para que o processo finalize com êxito. ### ✅ Colocando sistema em Modo Manutenção Será necessário colocar o sistema em Modo Manutenção pra evitar que usuários utilizem o sistema durante a transferencia. Para isso, conecte no servidor Apache (APP) do mesmo utilizando a porta padrão (9024) ```console vim /var/www/html/cliente.atende.net/_config.padrao.inc Altere o parâmetro de 0 para 1 $_CONFIG['manutencao'] = 1; ``` Para validar se o sistema ficou em modo manutenção, basta acessar o endereço do mesmo https://cliente.atende.net/ e verificar se a mensagem de manutenção é exibida! ### ✅ Abrir PG_HBA Será necessário abrir o pg_hba para restaurar a base no ambiente definitivo. ```console vim /etc/postgresql/16/main/pg_hba.conf Altere os valores MD5 para TRUST. Segue exemplo abaixo: host all all 127.0.0.1/32 ident map=local host all all 127.0.0.1/32 trust host all all 192.168.31.32/28 trust host all all 192.168.131.0/24 trust host all all 192.168.25.0/24 trust host all all 192.168.24.0/24 trust host all all 192.168.20.0/24 trust host all all 192.168.19.0/24 trust host all all 172.16.0.0/12 trust ``` Para aplicar a liberação feita no hba, execute: ```console systemctl reload postgresql.service ``` ### ✅ Liberar porta 5432 No Firewall do ambiente definitivo, vá em: Firewall > Rules > LAN Crie uma regra com os seguintes parâmetros: ```console Regra Interface LAN: Action: Pass Interface: LAN Address Family: IPv4 Protocol: TCP Source: LAN Net Destination: Any Destination Port Range: other 5432 other 5432 Description: SGDB TEMP ``` ### ✅ Execução do Script BKP (DUMP/RESTORE) Para realizarmos a transferência (backup/restore) entre os ambientes, precisamos conectar no servidor de Banco de Dados do cliente (Definitivo) Na pasta HOME do usuário root teremos o script transferir_16.sh Altere os parâmetros do mesmo: ```console vim transferir_16.sh Obs: Altere apenas os parâmetros passados no manual: Host_Origem="192.168.25.XX" (Altere conforme o IP informado no chamado) Porta_Origem="5432" BD_Origem="00000_cliente" (Alterar conforme repassado no chamado) Host_Destino="127.0.0.1" Porta_Destino="5432" BD_Destino="00000_cliente" (Alterar conforme repassado no chamado) Após alterado, execute o script (Sempre utilize o & no final do comando, garantindo que a execução será feita em segundo plano) ./transferir_16.sh & ``` Obs: Explicando o Script: Esse script irá conectar no ambiente de Migração (informado no e-mail) onde o cliente esta, irá realizar o Backup na Storage do Data Center, e logo após irá fazer a restauração no ambiente Definitivo do cliente. ### ✅ Conferencia dos Logs da execução do Script Assim que o Script for finalizado, deve ser efetuado a conferencia dos logs para garantir que a transferência ocorreu com sucesso: ```console cat *.log | grep ERROR cat *.log | grep Error cat *.log | grep WARN cat *.log | grep Warn ``` ### ✅ Execução InicializaDB Após os ajustes, agora iremos executar o processo do InicializaDB na base do cliente. Ambiente: Produção IP: 172.16.1.XXX Porta: 65432 (Padrão) Usuário: postgres Senha: (neste momento o banco ainda estará como trust sendo assim não é necessário informar a senha) Database: 00000_cliente Após informar os dados, o mesmo irá conectar no banco de dados do cliente. Onde já vai trazer algumas opções marcadas no checkbox, e precisamos garantir que as opções abaixo estejam marcadas conforme também o Checklist na planilha (Demais opções que já vieram marcados devem continuar marcadas!): - Atividades pós-restore > Seta/Revoga permissões - Atividades pós-restore > Cria estrutura de monitoração - Consistências > Consistir tablespaces de índices e PKs - Criação de Tabelas > Cria ou recria a webbased.tbsession - Criação de Tabelas > Cria tabelas caso não existam - Criação de Tabelas > Ajustar sequences - Particionamento > Particionar as Tabelas - Armazenamento de Arquivos > Alterar configuração de uso da Storage - Armazenamento de Arquivos > Alterar Estrutura de Armazenamento Deverá ser alterado conforme memória da VM Definitiva (BDP-1600) Menor que 6GB - Selecionar a opção 32/16MB De 6GB até 12GB - Selecionar a opção 64/32MB Se for maior que 12GB - Selecionar a opção 128/64MB - Armazenamento de Arquivos > Iniciar Particionamento do shema Arquivo - Armazenamento de Arquivos > Habilitar/Desabilitar Agendamentos (desativar apenas o agendamento 459) Após tudo conferido e marcado, pode clicar em Iniciar ### ✅ Tirando sistema do Modo Manutenção Após executar as etapas anteriores, tire o sistema de modo manutenção: ```console vim /var/www/html/cliente.atende.net/_config.padrao.inc Altere o parâmetro de 1 para 0 $_CONFIG['manutencao'] = 0; ``` ### ✅ Teste Acesso - Atende.Net Realize o teste de acesso ao Sistema garantindo que o Atende.Net esta acessível e funcionando de forma adequada: Via navegador: https://cliente.atende.net ### ✅ Executar Atualização - SVN Neste ponto iremos executar a atualização SVN (Software Atende.Net) do cliente em questão. Acesse via navegador: https://cliente.atende.net/atualiza/atualiza_versao.php Realize o login com as credênciais (Código IPM e Senha) e selecione a ultima revisão e execute a atualização: ![execucao_svn](../img/executar_svn_producao.png) ### ✅ Alterar IP´s Servlets Para alterar os microserviços no Atende.Net, executaremos o SQL abaixo, onde de forma automatizada já setará todos os Ip's corretamente. Execute o SQL abaixo no Banco de Dados do cliente alterando os seguintes dados: Alterar o IP: 192.168.40.32 para o IP da LAN passado no chamado Alterar o IP 192.168.40.46 para o IP Virtual passado no chamado ```console CREATE TABLE public.tbmicrosservicoinstancia_202310 AS ( SELECT * FROM webbased.tbmicrosservicoinstancia ); CREATE TABLE public.tbmicrosservicoinstanciasis_202310 AS ( SELECT * FROM webbased.tbmicrosservicoinstanciasis ); CREATE TABLE public.tbservletjava_202310 AS ( SELECT * FROM webbased.tbservletjava ); DELETE FROM webbased.tbmicrosservicoinstancia WHERE svjaplicacao IN (2, 3, 4, 5, 15); DROP TABLE IF EXISTS tbdados; CREATE TEMP TABLE tbdados AS ( SELECT '192.168.40.32' AS rede, '192.168.40.46' AS cluster ); INSERT INTO webbased.tbmicrosservicoinstancia ( svjaplicacao, svjnome, msinome, msisequencia, msiendereco, msiativo, msiversao ) ( SELECT svjaplicacao, svjnome, svjnome, 1, CASE WHEN svjnome = 'WebOcrReader' THEN 'http://' || tbdados.cluster || ':8083' -- OCR WHEN svjaplicacao = 2 THEN 'http://' || tbdados.cluster || ':8081' -- WebReport WHEN svjaplicacao = 3 THEN 'http://' || tbdados.cluster || ':8082' -- JobRunner WHEN svjaplicacao = 4 THEN 'http://' || tbdados.cluster || ':8083' -- FileOptimizer WHEN svjaplicacao = 5 THEN 'http://' || tbdados.cluster || ':8084' -- FileSigner WHEN svjaplicacao = 15 THEN 'http://' || tbdados.cluster || ':8086' -- JSM ELSE '' END, 1, NULL FROM webbased.tbservletjava LEFT JOIN tbdados ON TRUE WHERE svjaplicacao IN (2, 3, 4, 5, 15) ORDER BY 1, 2 ); INSERT INTO webbased.tbmicrosservicoinstanciasis ( svjaplicacao, svjnome, msisequencia, siscodigo ) ( SELECT 2, 'WebReport', 1, siscodigo FROM webbased.tbsistemacliente WHERE sicativo = 1 GROUP BY siscodigo ); ``` ### ✅ Nova Estrutura de arquivos No Atende.Net, acesse o sistema e confira/configure conforme abaixo: https://cliente.atende.net ⚙️ Conferir/Alterar flag "Utiliza Nova Estrutura de Armazenamento" `Gerenciamento do Sistema » Sistema » Configurações » Geral » Administrador` ⚙️ Conferir/Alterar "Tamanho dos Arquivos Grandes" `Gerenciamento do Sistema » Sistema » Configurações » Geral » Administrador` *Tamanho para Particionamento dos Arquivos Grandes* *Tamanho das Partições dos Arquivos Grandes* ATENÇÃO: Deverá ser alterado conforme memória da VM Definitiva (BDP-1600): Menor que 6GB - Selecionar a opção 32/16MB De 6GB até 12GB - Selecionar a opção 64/32MB Se for maior que 12GB - Selecionar a opção 128/64MB ⚙️ Configurar / Ativar Agendamentos de Banco de Dados: 459, 460, 461 `Gerenciamento do Sistema » Sistema » Agendamento de Tarefas` Obs: Agendamento 459 deverá ser DESATIVADO. ⚠️ ATENÇÃO: Cada agendamento deverá ter o seu horário especifico para execução! Para definir a CRON, consulte esta [planilha](https://ipmcombr-my.sharepoint.com/:x:/g/personal/alexsandre_constantino_ipm_com_br/ERfKvZtAhRVLhkqFuUSL23EBSyxVzjYuHwK4L845If4Plw?e=LcfFmM), a qual será responsavel por organizar os agendamentos dos ambientes COMPARTILHADOS. ### ✅ Emissão de Relatório (Teste funcionamento) Teste a emissão de um relatório qualquer para verificarmos o funcionamento. Exemplo, na rotina `Gerenciamento do Sistema » Microsserviços » Microsserviços` Clique no ícone de Impressora localizado no rodapé da página e confirme a impressão: ![impressao_relatorio_teste](../img/impressao_relatorio_teste.png) Após a finalização, confira se imprimiu corretamente! ![impressao_relatorio_teste2](../img/impressao_relatorio_teste2.png) ## ✅ Removendo Regra Temporária (Porta 5432) Nos passos anteriores, criamos uma regra liberando a porta 5432 na Interface LAN do Firewall para a transferência do cliente. Como o processo já foi finalizado, removeremos essa regra: Navegue em: Firewall > Rules > LAN Remova a regra criada anteriormente para a porta 5432 ### ✅ Script Backup ⚙️ Configurando arquivo ".cfg" O arquivo abaixo deverá ser configurado para que todas as manutenções sejam realizadas após a transferência de ambiente. Altere o DATABASE para o nome padrão do cliente (00000_cliente) ```console mkdir -p /root/bkp_remoto//cfg/ ``` Após, crie o arquivo manutencao.cfg. Neste arquivo iremos inserir a data no padrão ANO/MES/DIA (Ex: 20250515). Isso fará com que o Script verifique essa data e após esse primeiro Backup o mesmo passe a realizar todas as manutenções necessárias na Base. ```console vim /root/bkp_remoto//cfg/manutencao.cfg ``` ### ✅ Fechar o PG_HBA Necessário fechar o PG_HBA para que após isso solicite a senha para realizar qualquer conexão no banco de dados. ```console vim /etc/postgresql/16/main/pg_hba.conf Altera os valores TRUST para MD5 mantendo apenas a rede 127.0.0.1/32 como trust. Segue exemplo abaixo: host all all 127.0.0.1/32 ident map=local host all all 127.0.0.1/32 trust host all all 192.168.31.32/28 md5 host all all 192.168.131.0/24 md5 host all all 192.168.25.0/24 md5 host all all 192.168.24.0/24 md5 host all all 192.168.20.0/24 md5 host all all 192.168.19.0/24 md5 host all all 172.16.0.0/12 md5 ``` ### ✅ Versão bkp_remoto.sh Ainda no banco de dados definitivo, confira a versão do script de backup, garantindo que esteja atualizado na versão (3.11). Para isso, execute: ```console cat bkp_remoto/*.sh | grep "bkp_version=" ``` Retorno: bkp_version="3.11" bkp_version="3.11" bkp_version="3.11" ### ✅ GTT Agent (Conferência) Verificar a execução do GTT_AGENT nesse ambiente. Para isso, execute: ```console systemctl status gtt_agente.service ``` Retorno: ![gtt_agente_status](../img/gtt_agente_status.png) ### ✅ HASH _config.padrao (Apache) Agora no servidor Apache, iremos alterar as HASH do _config.padrao.inc do cliente. Para isso, execute: ```console vim /var/www/html/cliente.atende.net/_config.padrao.inc Altere os parâmetros: $_CONFIG['senha_atendenetweb'] = 'HASH'; (Altere para HASH cadastrada em datacenter.ipm.com.br) $_CONFIG['senha_sincronizador'] = 'HASH'; (Altere para HASH cadastrada em datacenter.ipm.com.br) ``` ### ✅ Chave Cripto - Cliente Precisamos definir uma senha para a chave_crypto_cliente no GTT. Essa chave esta presente em TODOS os clientes com o intuíto de ocultar informações sigilósas pertencendo a LGPD. Para isso, acesse https://datacenter.ipm.com.br/ e navegue: ```console Gerenciamento Data Center > Manutenção > Equipamentos > Equipamento: Encontre o equipamento do Apache do cliente: 00000-cliente-app-01-5618.atende.net). Clique em Consultar > Serviços > Selecione o Apache e clique em Configurar Serviço: Incluir: Usuário: chave_crypto_cliente Senha: Clique no iclone ao lado para gerar uma senha automaticamente Ativo: Sim ``` ![chave_crypto_gtt](../img/chave_crypto_gtt.png) Após realizado o cadastro do usuário e senha no GTT, vá até a VM do Banco de Dados do cliente e execute o comando abaixo para conectarmos via psql: ```console Altere o nome da database do cliente: psql -h localhost -U postgres -d 00000_cliente ``` Agora execute o comando substituindo a "senha" pelo senha cadastrada anteriormente no GTT: ```console SELECT MD5('senha'); exit ``` Após o retorno, execute o comando exit para desconectar da instancia do banco de dados: Colete a senha (HASH) gerada, e adicione no campo comentário com (aspas duplas) no GTT: ![chave_crypto_gtt2](../img/chave_crypto_gtt2.png) Após gerado e realizado o cadastro da senha, iremos informar no _config.padrao.inc do Apache do cliente. Para isso, acesse: ```console vim /var/www/html/cliente.atende.net/_config.padrao.inc ``` Informe o valor hash substituindo pelo valor gerado no passo anterior e que colocamos no campo comentário do GTT (sem aspas duplas). ```console $_CONFIG['chave_crypto_cliente']= 'hash'; ``` ### ✅ Elastic Global - Cadastrar usuário e senha no GDT antigo exemplo: "01216_riogrande_d" gerar a senha e copiar o hash para colocar no config. - Criar usuários e senhas no Postman: Importar o arquivo: "Elastic - Criação Roles/Usuários - Cluster Global Admin". Informar a senha do Elastic Global, dados de usuário do cliente e variáveis com endereço IP dependendo do Datacenter. -Adicionar as linhas de usuário e senha no .config_padrao.inc do apache: $_CONFIG['elastic_user'] = '08573-avaliacao'; $_CONFIG['elastic_pass'] = ''; - Configurar endereços no microserviços do Elastic Global no portal do atende: Caminho: `Gerenciamento do Sistema » Microsserviços » Microsserviços` https://sp01-svc.atende.net:9200 https://pr01-svc.atende.net:9200 ### ✅ Cadastrar GDT - Cliente / Storage No sistema antigo de gerenciamento https://datacenter.atende.net, deve-se cadastrar o cliente e vincular a storage de backup que ele utilizará. Tal procedimento é necessário devido a rotina de download dos backups. Para isso, siga os processos abaixo: ⚙️ Gerenciamento do Data Center » Manutenção » Clientes » Botão Incluir Cliente 1. Insira a URL do cliente e clique na lupa; Após isso, ele irá buscar via webservice as informações. 2. Informe o código fiscal; 3. Padronize o Nome Fantasia conforme a entidade que estiver cadastrando (PM - CM - SE - XX); 4. Informe a storage de backup conforme o ambiente. 🌐 PR01 - pr01-dd6900-01 (Código 8) 🌐 SP01 - sp01-dd6400-01 (Código 6) ![exemplo_cadastro_gdt](../img/exemplo_cadastro_gdt.png) ### ✅ Cadastrar Analytics Necessário realizar cadastro no Analytics para obter as metricas. No navegador, acesse: https://analytics.google.com/analytics/web/?hl=pt-br Utilize uma das contas: analytics01@ipm.com.br, analytics02@ipm.com.br ou analytics03@ipm.com.br Para realizar o cadastro, vá na ⚙️ » Administrador » Criar » Conta - Nome da Conta: SC - Prefeitura de "Cliente" (Substituir Estado e Cliente conforme necessidade) - Nome da Propriedade: Usar mesmo nome da Conta - Categoria: Internet e telecomunicações - Escolha seus objetivos de negócios: Outros objetivos de negócios - Começar a coletar dados: Selecione opção WEB - URL do site: cliente.atende.net / Nome do Fluxo: Mesmo nome da conta "SC - Prefeitura de "Cliente"" Após criar, será gerado um ID da Métrica (Ex: G-01XNDTQG2C), o qual deve ser informado no sistema do cliente! Para isso, acesse: https://cliente.atende.net Vá em: `Gerenciamento do Sistema » Sistema » Configurações » Geral » Serviços Externos` Preencha conforme exemplo e após, clique em confirmar. ![servico_analytics](../img/servico_analytics.png) ### ✅ Liberação IPMAdminBD Para realizar a liberação do IPMAdminBD, acesse o Dicionário (localmente na maquina da IPM). No botão superior clique em Manutenção Clientes e filtre o cliente em questão. Selecione o cliente e com o botão esquerdo clique em: IPMAdminBD > Técnicos: ![ipmadminbd_liberacao_1.png](../img/ipmadminbd_liberacao_1.png) Com o botão direito na nova janela aberta, selecione a opção (Copiar privilégios de outro cliente) ![ipmadminbd_liberacao_2.png](../img/ipmadminbd_liberacao_2.png) Busque o cliente Rio do Sul como Template, selecione o mesmo e clique em Selecionar ![ipmadminbd_liberacao_3.png](../img/ipmadminbd_liberacao_3.png) Após a seleção, o Dicionário ira nos avisar que essa configuração irá substituir os privilégios do cliente em questão pelos privilégios do template selecionado (Cliente Rio do Sul) ![ipmadminbd_liberacao_3.png](../img/ipmadminbd_liberacao_4.png) Após isso, o cliente possuirá os privilégios adequados de acesso via IPMAdminBD. ### ✅ Ajustar/Conferir Agendamentos Vá em: Gerenciamento do Sistema » Sistema » Agendamento de Tarefas Após, selecione o agendamento desejado e clique em "Horários". Perceba que já existe uma Configuração Padrão, para definir o horário desejado deve-se ir em "Incluir Horário da Execução de uma Tarefa". Os horários dos agendamentos listados abaixo, devem ser conforme informado no chamado: Exemplo: *Senha Financeira: 12:10 - 00:10* *Demais Agendamentos: XX:10* ![exemplo_alteracao_agendamento.png](../img/exemplo_alteracao_agendamento.png) ⚙️ 6 - Contatos do Usuário: Descrição: Semanal Todos os Sábados - Manual Expressão Cron: 0 10 12 ? * 7 * (Atenção: sempre alterar os minutos conforme informação do chamado) Após configurar, ative o horário incluindo de forma manual e desative o padrão de fábrica. Utilize a opção "Gerenciar". ![exemplo_alteracao_agendamento_ativacao.png](../img/exemplo_alteracao_agendamento_ativacao.png) ⚙️ 4 - Estatísticas de Uso: Descrição: Semanalmente - Manual Expressão Cron: 0 10 1 ? * * * (Atenção: sempre alterar os minutos conforme informação do chamado) Após configurar, ative o horário incluindo de forma manual e desative o padrão de fábrica. Utilize a opção "Gerenciar". ![exemplo_alteracao_agendamento_ativacao2.png](../img/exemplo_alteracao_agendamento_ativacao2.png) ⚙️ 3 - Validação de Senha de Acesso: Descrição: Diariamente, duas vezes ao dia - Ajuste Manual Expressão Cron: 0 10 0,12 ? * * * (Atenção: sempre alterar os minutos conforme informação do chamado) Após configurar, ative o horário incluindo de forma manual e desative o padrão de fábrica. Utilize a opção "Gerenciar". ![exemplo_alteracao_agendamento_ativacao3.png](../img/exemplo_alteracao_agendamento_ativacao3.png) Ainda no Agendamento de Tarefas, confira se os listados abaixo estão desativados. ⚙️ 119 - Envio de Arquivos para Storage ⚙️ 158 - Gerenciamento de Arquivos Temporários ⚙️ 178 - Processamento de OCR ⚙️ 198 - Exclusão de Arquivos da Storage Se não estiverem, execute o SQL: ```console update webbased.tbtarefacron set tcrativo = 0 where tagcodigo in (158, 119, 198, 178) and tagtipo = 1 ``` ### ✅ Execução dos Agendamentos Através da rotina `Gerenciamento do Sistema » Microsserviços » Monitoramento » Docker » Agendamentos`, será possível verificar Última Execução e a Próxima Execução. Caso não liste nada na consulta, revise os microsserviçosou reinicie as stacks. ### ✅ Cadastrar Domínios de Acesso Na rotina Gerenciamento do Sistema » Sistema » Domínios, inclua os domínios do cliente. **Importante, deve-se sempre iniciar pelo principal cliente.atende.net** ![exemplo_cadastro_dominio.png](../img/exemplo_cadastro_dominio.png) ### ✅ Ativar Nível Máximo de Segurança Na rotina `Gerenciamento do Sistema » Sistema » Configurações » Geral » Segurança`, alterar: ⚙️ Nível de Segurança = Máximo - Expiração de Usuários Internos = 90 - Expiração de Usuários Externos = 0 ![nivel_maximo_de_seuranca](../img/nivel_maximo_de_seuranca.png) ### ✅ Configuração Microsserviços Mapas Na rotina `Gerenciamento do Sistema » Microsserviços » Microsserviços`, na aplicação Mapas o deve ser avaliado e configurado conforme ambiente: 🌐 PR01: - MapnikTiles: https://pr01-maps.atende.net/mapnik/ - MapsGeocoding: https://pr01-maps.atende.net/nominatim/ - MapsRouting: https://pr01-maps.atende.net/osrm/ - MapsServices: https://pr01-js.atende.net/nmp-ipmmaps-backend-v2/ - PeliasGeocoding: https://pr01-maps.atende.net/pelias/ - VectorTiles: https://pr01-maps.atende.net/mapnik/ 🌐 SP01: - MapnikTiles: https://sp01-maps.atende.net/mapnik/ - MapsGeocoding: https://sp01-maps.atende.net/nominatim/ - MapsRouting: https://sp01-maps.atende.net/osrm/ - MapsServices: https://sp01-js.atende.net/nmp-ipmmaps-backend-v2/ - PeliasGeocoding: https://sp01-maps.atende.net/pelias/ - VectorTiles: https://sp01-maps.atende.net/mapnik/ Após configurado, vá em: `Gerenciamento do Sistema » Sistema » Configurações » Geral` e altere o API de Mapas para: IPM Maps Service