Histórico da Página
...
Índice | ||||
---|---|---|---|---|
|
Introdução
...
A partir da versão 12.1.23062402, 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.
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. |
...
O executável do novo serviço se encontra na pasta rm-update da instalação padrão. Ele pode ser utilizado a partir de seu executável ou como serviço. Para utilizá-lo a partir de seu executável, basta rodá-lo. Ele executará o serviço utilizando 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.
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 Para que a atualização utilize o novo serviço, o endereço do "Servidor de Atualização" (a tag UpdateServer) no RM.exe.config deve ser alterado para o novo endereço: <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:50015000" /> </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á baixado 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= |
...
Na pasta rm-update é encontrado 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" } } } } |
Pontos importantes de configuração:
- BasePath: é o caminho para a pasta base do RM, de onde os arquivos de atualização serão obtidos.
- Endpoints: dentro dessa propriedade, as urls e portas para os protocolos http e https são definidas. Como padrão, as portas são definidas para 5000 (http) e 5001 (https).
...
/>
</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 servidor de atualização utilizando o novo TOTVS Update pode ser utilizado em um sistema operacional Windows ou Linux, e as etapas serão diferentes para 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
Expandir | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||
|
...
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. |
Informações | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
Informações | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|