Histórico da Página
Índice
...
Índice | ||||
---|---|---|---|---|
|
...
...
Introdução
...
...
Introdução
O TOTVS Update é utilizado para realizar atualizações automáticas no ambiente 3 Camadas, seja Client (Smart Client) ou Server (Host). O TOTVS Update é utilizado para atualizar o ambiente, já o SmartClient, é utilizado para instalar o sistema para comunicação via HTTP. Para configurar o SmartClient é necessária a configuração do TOTVS Update, pois os dois compartilham o servidor de Atualização.
O Smart Client RM nada mais é que o mesmo RM.exe utilizado nos ambientes locais e três camadas, e utiliza protocolo TCP ou HTTP para se comunicar com o servidor de aplicação, o Host.
Aviso | ||
---|---|---|
| ||
O TOTVS Update não foi projetado para atualização dos Portais RM (Ex: Corpor.Net, Portal Educacional, FrameHTML). O TOTVS Update não é um instalador RM, trata-se de uma configuração realizada no RM. |
Informações | ||
---|---|---|
| ||
Não é possível utilizar o Smart Client ou TOTVS Update para funcionalidades ainda em Delphi. |
Como funciona:
O TOTVS Update atualiza automaticamente o ambiente de acordo com a versão de uma máquina específica, utilizada como "Servidor de atualização". O Servidor de atualização é uma instalação Server do RM, portanto é necessário atualizar manualmente, através de um instalador, o "Servidor de Atualização" com a versão que será replicada para outras estações.
Exemplo: TOTVS Update é utilizado para atualizações automáticas do sistema RM entre Releases (Ex.: 12.1.12 para 12.1.13) e Patchs (Ex.: 12.1.12.111 para 12.1.12.112) em ambientes 3 camadas.
O "Servidor de atualização" pode ser o próprio ou um dos servidores de aplicação, ou seja, onde estará sendo executado o HOST que irá responder pelo Smart Client RM.
Informações | ||
---|---|---|
| ||
Ao realizar a instalação inicial no "Servidor de atualização" utilize a camada "Server". |
Como configurar
Informações | ||
---|---|---|
| ||
Para uma melhor estabilidade e gestão de configuração do ambiente, sugerimos que utilizem o configurador global. Mais informações podem ser acessadas clicando aqui. |
A partir da versão 12.1.22 pode-se configurar o TOTVS Update durante a instalação da BibliotecaRM:
...
icon | false |
---|
...
title | Veja como configurar pelo instalador |
---|
Na instalação da BibliotecaRM 12.1.22 foi implementado a opção de Configuração do TOTVS UPDATE.
A opção para configurar o TOTVS Update ficará localizada na tela de Configurações do instalador e somente será habilitada quando o tipo de instalação for N camadas, de acordo com o tipo de camada selecionada, conforme imagem abaixo:
Tipos de Instalação:
- Ambiente N Camadas Client
Após marcar a opção para configurar o TOTVS Update, será necessário informar o nome do servidor e porta do servidor de atualização. Assim, a instalação atualizará o arquivo RM.exe.config com a propriedade <add key="UpdateServer" value="host:porta"/>, onde o host e porta informados na tela serão informados no valor desta TAG.
Ambiente N Camadas -> Servidor de Aplicação (AppServer)
Após marcar a opção para configurar o TOTVS Update, a instalação atualizará o arquivo RM.Host.exe.config e RM.Host.Service.exe.config com a propriedade <add key="UpdateServerEnabled" value="true"/>. e também atualizará o arquivo RM.exe.config com a propriedade <add key="UpdateServer" value="host:porta"/>, onde o host e porta informados na tela serão informados no valor desta TAG.
No caso de uma instalação que possua múltiplos hosts, apenas o primeiro host terá seus arquivos de configuração alterados.
Observação:
A configuração do TOTVS Update não estará disponível para o tipo de camada Servidor de Processos (JobServer) ou para Ambiente Local. Lembrando que o AppServer e JobServer são atualizados manualmente, via instalador.
...
icon | false |
---|
...
id | Principal |
---|
Card | ||||||
---|---|---|---|---|---|---|
| ||||||
Para habilitar o serviço de atualização insira a tag <add key="UpdateServerEnabled" value="true"/> no arquivo RM.Host.Service.exe.Config, no caminho: C:/TOTVS/CorporeRM/RM.net e reinicie o serviço do HOST. Ainda no servidor de atualização, é preciso inserir a tag <add key="UpdateServer" value="host:porta"/> no arquivo RM.exe.Config. Veja o exemplo dos arquivos de configuração para este cenário: RM.Host.Service.exe.config e RM.exe.config
|
...
id | 2 |
---|---|
label | Server |
Para que um ambiente Server seja atualizado é necessário inserir no arquivo RM.Host.Service.exe.Config, no caminho C:\totvs\CorporeRM\RM.net, as tags:
<add key="UpdateServer" value="host:porta"/> - Informe o nome da máquina e porta que o HOST do Servidor de Atualização utilizará.
<add key="UpdateStartTime" value="HH:mm"/> - Informe o horário que o servidor iniciará a busca por atualizações no Servidor de Atualização.
<add key="UpdateEndTime" value= "HH:mm"/> - Horário que o servidor finalizará a busca por atualizações no Servidor de Atualização.
Veja o exemplo do arquivo de configuração para este cenário: RM.Host.Service.exe.config
...
icon | false |
---|
A partir da versão 12.1.13 o instalador do sistema, oferece a opção de instalação como JobServer ou AppServer. O Servidor de atualização pode ser configurado como JOB ou APP, pois nenhuma dessas opções interferem em sua execução.
Exemplo, em um ambiente N camadas os servidores seriam JobServer, Aplicação e Atualização.
ATENÇÃO:
Não é recomendado a utilização do Servidor de Atualização como JobServer ou AppServer. Indicamos sua exclusividade para as atualizações.
Ao encontrar atualizações disponíveis, o serviço RM.Host.Service.exe será finalizado para que as atualizações sejam realizadas. Finalizadas as atualizações o serviço será reiniciado.
ATENÇÃO:
Caso exista(m) usuário(s) ou serviço(s) utilizando o ambiente, ele(s) serão desconectado(s)!
Quando o Host estiver rodando com o usuário "NETWORK SERVICE" será necessário utilizar um usuário de rede ou da máquina com privilégios necessários para gerenciar os serviços, pois o RM.Update não tem permissão suficiente para subir novamente o serviço do Host.
Expandir | ||
---|---|---|
| ||
: |
O servidor de aplicação pode ser utilizado como servidor de atualização, entretanto neste cenário, onde a maquina de app é a mesma de atualização, não se deve realizar a configuração de atualização do server com as tags <add key="UpdateServer" value="host:porta"/> - Informe o nome da máquina e porta que o HOST do Servidor de Atualização utilizará.
Quando o ambiente utilizar balanceamento nativo, com múltiplos hosts (host1, host2), as tags do Totvs Update devem ser configuradas apenas no config de um dos hosts. Exemplo: RM.Host.Service.exe.config, RM.Host.Service1.exe.config ou RM.Host.Service2.exe.config. Não se deve realizar a configuração em todos os configs, pois não existe balanceamento para o Totvs Update.
Caso o Sistema RM já esteja instalado no Servidor de Atualização, utilize o passo a passo contido no link abaixo:
Configuração para simular 3 camadas - JobServer
...
id | 3 |
---|---|
label | Client |
Para que um ambiente Client seja atualizado é necessário inserir no arquivo RM.exe.Config, no caminho: C:\totvs\CorporeRM\RM.net, a tag:
<add key="UpdateServer" value="host:porta"/> - Informe o nome da máquina e porta que o HOST do Servidor de Atualização está utilizando.
...
Informações |
---|
Enquanto o Sistema RM estiver atualizando, o serviço RM.Host.Service.exe será finalizado. Assim todos os usuários serão desconectados do sistema. |
Ao iniciar o aplicativo RM.exe será exibida a tela de verificação de atualização do sistema.
Caso haja alguma alteração de versão, release ou patch do Sistema RM no Servidor de Atualização, o sistema irá iniciar o processo de atualização e depois abrirá normalmente.
...
id | Download do SmartClient |
---|---|
label | Download do SmartClient |
title | Download do SmartClient |
Para download do RM.exe (smart client), basta acessar o link conforme exemplo abaixo:
http://Servidor_na_nuvem:8051/wsUpdate
Composição do link: Http://<endereço do host>:porta(8051 por default)/wsUpdate;
Aviso | ||
---|---|---|
| ||
Em ambientes que utilizam SSL o link muda para: |
Aviso |
---|
Caso não consiga acessar o link, verifique se a porta está liberada. Para isso, execute o seguinte comando no cmd do Server: netsh http add urlacl url=http://+:8051/ user=NetworkService |
Será apresentada a tela a seguir, clique em "Aqui":
Tela de Download do Client SmartClient:
A partir da versão 12.1.2209 será apresentada a tela abaixo, nesse caso, clique em "Download":
Após fazer o download do arquivo e execute-o. Será iniciada a instalação do Sistema RM.
Instalador do SmartClient:
Informações | ||
---|---|---|
| ||
|
Caso a tela abaixo seja apresentada, siga os passos a seguir:
...
2. Na aba Logon marque a caixa Conta do Sistema Local e depois clique em OK.
Card | ||||
---|---|---|---|---|
| ||||
A tag <add key="UpdateLogEnabled" value="true" /> pode ser habilitada nas estações que serão atualizadas. Desta forma ao executar o TOTVS Update será gerado o arquivo de log "_updatelog.txt", na pasta do RM contendo informações da atualização. |
Card | |||||
---|---|---|---|---|---|
| |||||
Para otimizar o processo de instalação/atualização através do TOTVS Update é possível definir uma pasta compartilhada na rede que será utilizada como cache dos arquivos baixados do servidor de atualização. Para habilitar o cache, é necessário adicionar uma nova chave no arquivo de configuração do Host (RM.Host.Service.exe.config). <add key="UpdateCachePath" value="\\SERVIDOR\PASTA"/> Quando esta opção é ativada, o cliente irá primeiro verificar se o arquivo a ser atualização já foi baixado por outro cliente e em seguida fará a cópia do mesmo a partir desta pasta da rede. Para o correto funcionamento, todos os clientes deverão ter acesso de escrita e leitura nesta pasta compartilhada. Caso o arquivo não tenha sido baixado, o primeiro cliente que fizer o download do servidor irá fazer a atualização do arquivo na pasta de cache para que outros clientes que forem fazer a atualização busquem o arquivo nesta pasta.
Veja o exemplo do arquivo de configuração para este cenário: RM.Host.Service.exe.config |
...
title | Observação |
---|
Para a execução de TLS 1.1 e 1.2 no Windows 7 é necessário adicionar os registros abaixo, visto que são os protocolos de comunicação ativos atualmente e que por padrão não são ativos na versão Windows7:
Windows Registry Editor Version 5.00
...
A partir da versão 12.1.2402, foi disponibilizado um novo serviço externo para o TOTVS Update (Servidor de Atualização) que será responsável por fazer a atualização dos ambientes Smart de forma mais rápida e isolada do RM.Host. O novo serviço conta com uma melhor gerenciamento do download dos arquivos reduzindo a leitura em disco e é capaz de suportar mais conexões que o antigo proporcionando uma atualização mais rápida e eficiente.
Distribuição
...
Este novo serviço é instalado junto com o RM, porém é um aplicativo isolado do RM.Host, seu executável se encontra na pasta rm-update da instalação padrão.
Ele pode ser utilizado como um aplicativo ou como um serviço.
Arquivo de configuração Âncora config-file config-file
config-file | |
config-file |
...
Na pasta rm-update fica o arquivo appsettings.json, que define as configurações da aplicação.
Exemplo de arquivo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
{
"UseCompression": "true",
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"UseSwagger": "true",
"Update": {
"BasePath": "C:\\RM\\Atual\\Release\\Bin",
"CacheEnabled": "true"
},
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://localhost:5000"
},
"Https": {
"Url": "https://localhost:5001"
}
}
}
} |
Propriedade de configuração:
- UseCompression: Ativa ou desativa a compactação de resposta. Ativado pode reduzir o tamanho da resposta e aumentar capacidade de performance do serviço.
- Logging: Propriedades de registro de Log padrão do .Net, Veja mais informações:
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-6.0
https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-6.0#llvl - AllowedHosts: Configuração de uma lista de Host permitidos para acessar o Totvs Update. Lista separada por ponto e vírgula de nomes de host sem número de porta.
- UseSwagger: Ativa ou desativa a página de documentação de APIs, http://localhost:5000/swagger
- Update
- BasePath: É o caminho para a pasta base do RM, de onde os arquivos de atualização serão obtidos.
Este é o local principal onde deverá ter a versão mais recente do RM, que será utilizada como base de atualização. - CacheEnabled: Ativa ou desativa o gerenciamento de cache do serviço de atualização. Ativado poderá reduzir a quantidade de leitura em disco e reduzir o tempo total de atualização.
- BasePath: É o caminho para a pasta base do RM, de onde os arquivos de atualização serão obtidos.
- Kestrel.Endpoints
- Http
- Url: Configuração de endereço do Servidor de Atualização e porta http, não seguro. Como padrão, 5000 (http).
- Https
- Url: Configuração de endereço do Servidor de Atualização e porta https, seguro. Padrão, 5001 (https).
- Url: Configuração de endereço do Servidor de Atualização e porta https, seguro. Padrão, 5001 (https).
- Http
Nota |
---|
O ambiente configurado na propriedade BasePath, deve ser um ambiente isolado. |
Configurando ambiente Client
...
Para que o RM.exe utilize o novo serviço de atualização, seu endereço deverá ser configurado no RM.exe.config
Alterar a tag UpdateServer, no RM.exe.config com o endereço, seguindo este formato: <protocolo>://<endereço-do-host>:<porta>, (http://localhost:5000), como no exemplo abaixo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="JobServer3Camadas" value="false" />
<add key="Port" value="8050" />
<add key="Host" value="localhost" />
<add key="ActionsPath" value="C:\RM\Atual\Release\Bin;C:\RM\Atual\Release\Corpore.Net\Bin" />
<add key="LibPath" value="C:\RM\Atual\Release\Bin" />
<add key="UpdateServer" value="http://localhost:5000" />
</appSettings>
<runtime>
<generatePublisherEvidence enabled="false" />
<loadFromRemoteSources enabled="false" />
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration> |
Essa configuração pode ser feita diretamente no RM.exe.config do Host "Servidor de Atualização", assim, na próxima atualização automática o arquivo *.config será atualizado e as máquinas clientes já passarão a utilizar o novo endereço.
Configurando ambiente Server
...
Para que o RM Host em um ambiente server utilize o novo serviço de atualização, seu endereço deverá ser configurado no RM.Host.Service.exe.config
Alterar a tag UpdateServer, no RM.Host.Service.exe.config com o endereço, seguindo este formato: <protocolo>://<endereço-do-host>:<porta>, (http://localhost:5000), como no exemplo abaixo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="JobServer3Camadas" value="true" />
<add key="Port" value="8050" />
<add key="ActionsPath" value="C:\TOTVS\CorporeRM\RM.net;C:\TOTVS\CorporeRM\Corpore.Net\Bin" />
<add key="LibPath" value="C:\TOTVS\CorporeRM\RM.net" />
<add key="EnableDynamicLocalization" value="false" />
<add key="EnableCompression" value="false" />
<add key="LocalizationLanguage" value="pt-BR" />
<add key="HttpPort" value="8051" />
<add key="UpdateServer" value="http://localhost:5000" />
</appSettings>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true" />
<generatePublisherEvidence enabled="false" />
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration> |
Nota |
---|
Este ambiente server não pode ser o mesmo que foi configurado no arquivo appsettings.json, pasta rm-update, na propriedade BasePath. |
Utilizando como aplicativo
Âncora | ||||
---|---|---|---|---|
|
...
Ao executar "RM.UpdateManager.Runtime.exe" serão utilizadas as portas configuradas (os padrões são 5000 para http e 5001 para https).
Estas portas, assim como a url, podem ser alteradas no arquivo de configuração, conforme a seção Arquivo de configuração.
Quando o aplicativo executar será exibido um console, informando o nome do host configurado e exposto, como o exemplo abaixo:
Utilizando como serviço
Âncora | ||||
---|---|---|---|---|
|
...
O novo TOTVS Update pode ser utilizado em um sistema operacional Windows ou Linux, veja abaixo como configurar cada um.
Serviço no Windows
Para subir o TOTVS Update como serviço no Windows, basta criar um serviço que aponta para o executável RM.UpdateManager.Runtime.exe.
Exemplo de comando que pode ser utilizado:
Bloco de código | ||
---|---|---|
| ||
sc.exe create TotvsUpdateService binPath="C:\TOTVS\RM.NET\rm-update\RM.UpdateManager.Runtime.exe" |
Com o serviço criado, e as configurações corretas, basta iniciar o serviço:
Nota |
---|
Para que o serviço funcione corretamente, é necessário que o usuário do serviço possua permissões necessárias de acesso a disco, e caso seja utilizado o protocolo HTTPS, também tenha acesso ao certificado instalado na máquina. Caso contrário, o serviço não irá subir corretamente. |
Serviço no Linux
O TOTVS Update é compatível com sistemas operacionais baseados em Linux, permitindo uma aplicação eficiente e integrada a esta plataforma.
Para implementar o TOTVS Update Manager no Linux como um serviço, siga as instruções detalhadas abaixo. Este processo assegura que o serviço seja configurado corretamente e funcione de maneira otimizada.
Criar o arquivo de serviço, utilizando o comando a seguir:
Bloco de código | ||
---|---|---|
| ||
sudo nano /etc/systemd/system/updatemanager.service |
Neste arquivo criado, insira o conteúdo a seguir, modificando os parâmetros do serviço, especificamente o WorkingDirectory (diretório que contém o RM.UpdateManager.Runtime) e o ExecStart (caminho absoluto para o arquivo RM.UpdateManager.Runtime):
Nota |
---|
Pela diretiva do Linux, não é recomendado que arquivo de serviço fique em uma pasta a partir do diretório /home, pois em muitas distribuições tal caminho não é permitido para a utilização como serviço. |
Bloco de código | ||
---|---|---|
| ||
[Unit]
Description=RM Update Service
[Service]
WorkingDirectory=/caminho/para/sua/pasta/publish
ExecStart=/caminho/para/sua/pasta/publish/RM.UpdateManager.Runtime
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=RM.UpdateManager
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target |
Salve o arquivo utilizando as teclas: CTRL+X, Y para confirmar, e em seguida, pressione Enter.
Habilite e Inicie o Serviço:
Bloco de código | ||
---|---|---|
| ||
sudo systemctl enable updatemanager.service
sudo systemctl start updatemanager.service |
A partir deste momento, o serviço já está de pé e rodando.
Comandos para manutenção do serviço no Linux
Para verificar o status do serviço, a qualquer momento o seguinte comando pode ser utilizado:
Bloco de código | ||
---|---|---|
| ||
sudo systemctl status updatemanager.service |
E para visualizar os logs do serviço, o seguinte comando pode ser utilizado:
Bloco de código | ||
---|---|---|
| ||
sudo journalctl -fu updatemanager.service |
Para atualizar o serviço:
Bloco de código | ||
---|---|---|
| ||
sudo systemctl restart updatemanager.service |
E para parar o serviço:
Bloco de código | ||
---|---|---|
| ||
sudo systemctl stop updatemanager.service |
Notas e Observações importantes
Aviso | ||
---|---|---|
| ||
O arquivo _update.dat foi evoluído para que o novo serviço também o utilize. Sendo assim, o novo serviço deve ser iniciado após a inicialização completa do RM.Host do ambiente utilizado como "Servidor de Atualização". |
Aviso | ||
---|---|---|
| ||
Também é importante deixar claro que a máquina ou diretório onde estará o "Servidor de Atualização", não pode ser um "Servidor de Aplicação" que também será atualizado. Ele deve ser um ambiente isolado dos demais servidores de aplicação e clientes |
...
Arquivo disponível para download: Arquivo.reg
...
icon | false |
---|---|
title | Observação |
O TOTVS Update atualizará os ambientes de acordo com a versão instalada/utilizada no Servidor de atualização.
DICA:
Para melhor desempenho, quando ativo o serviço do Totvs Update, recomendamos habilitar a tag <add key="EnableCompression" value="true" /> em todas as estações envolvidas no processo de atualização.
Aviso | ||
---|---|---|
| ||
A partir da versão 12.1.31.114, o parâmetro EnableCompression localizado nos arquivos de config do RM será descontinuado. |
Importante: Após a definição do valor ideal da tag em seu ambiente, TODOS os arquivos de configuração devem possuir o mesmo valor, evitando erros de conflito de valores (algumas tags com valor true e outras com valor false).
Aviso | ||
---|---|---|
| ||
O processo de atualização do Smart Client é seguro e não causará dano algum a(s) máquina(s) envolvida(s) nesse processo. Caso algum antivírus instalado na(s) máquina(s) envolvida(s) aponte o RM.exe (Smart Client) como ameaça, inclui-a o executável na lista de exceções do antivírus, caso o download tenha sido bloqueado pelo anti-vírus, ou simplesmente prossiga com a execução, caso o antivírus não tiver bloqueado o download do instalador. Para minimizar a taxa do antivírus apresentar o arquivo como risco, a partir da release 12.1.28 e dos patches 12.1.27.169 e 12.1.26.214 , mantemos a assinatura digital do instalador e o arquivo baixado do Smart Client terá no seu nome o domínio + porta de download, se informados na URL do wsUpdate. Exemplo do nome do arquivo:
Importante: O executável baixado não deve ser renomeado, para o correto funcionamento do Smart Client. |
Configuração para Acesso Externo
Existem duas formas de realizar a configuração do Smart Client para acesso externo:
- 1º Configuração:
Publicar o servidor de App e de Atualização, Em seguida no arquivo de configuração, informe o endereço externo na tag "updateserver" e no "host", conforme exemplo no print abaixo:
- 2º Configuração:
Realizar a configuração de Gerenciador de config global no ambiente conforme documentação Gerenciador de Config
Segue abaixo, print com exemplo do conteúdo do arquivo após a configuração do config global:
...
. |
Informações | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
...
|
...
|
Informações | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
...
|
...
|
...
|
...
...