Files
apitdn/fluig_rag_docs/Plataforma Documentação técnica/Instalação e Atualização/Guia de migração da plataforma do Windows para Linux.md
T
2026-05-06 13:35:47 -03:00

16 KiB
Raw Blame History

title, source, path
title source path
Guia de migração da plataforma do Windows para Linux https://tdn.totvs.com/pages/viewpage.action?pageId=1027816803 \Plataforma Documentação técnica\Instalação e Atualização\Guia de migração da plataforma do Windows para Linux.md

Fique atento!

Esta página é válida a partir da atualização 2.0 e superiores.

Objetivo


O objetivo deste guia é apresentar os procedimentos recomentados para efetuar uma migração do TOTVS Fluig de um servidor Microsoft Windows para Linux.

Preparação


  • Defina previamente as configurações do ambiente para que sejam informados corretamente durante a fase de instalação e posteriores.
    EXEMPLO
    URL pública, servidor SMTP.

  • RECOMENDADO: derrube todos os serviços do Fluig antes de começar a migração.

Instalação


Atenção!

  • Utilize, para o Linux, uma versão do Fluig igual a versão instalada no Microsoft Windows.

  • Durante a execução do instalador, informe nas configurações do banco de dados o mesmo nome do banco sendo utilizado atualmente.

  • Apenas execute a instalação, não inicie o Fluig.

Realize uma instalação em Linux seguindo os procedimentos de uma nova instalação conforme documentado em [Instalação da plataforma no Linux - Instalador](Guia de instalação da plataforma/Instalação da plataforma no Linux - Instalador.md).

Em seguida, faça os ajustes necessários na instalação.

Ajustes de ambiente


Realize os ajustes de ambientes necessários configurações de memória do servidor, por exemplo no arquivo appserver/bin/standalone.conf.

Importação das configurações


Substitua o arquivo appserver/standalone/configuration/standalone.xml por uma cópia do mesmo arquivo encontrado na instalação do servidor Microsoft Windows.

Ajustes no standalone.xml


Uma vez que o arquivo appserver/standalone/configuration/standalone.xml foi copiado a partir do servidor Windows, estará configurado com informações nome do servidor, endereço IP do servidor, caminhos da instalação apontando para o servidor Windows. Será necessário alterar para as configurações do novo servidor. Para isso, abra o arquivo appserver/standalone/configuration/standalone.xml em seu editor de texto simples favorito (vi, nano, etc) e faça as seguintes alterações:

Atenção!

  • O Microsoft Windows comumente utiliza como separador de pastas o caracter "", enquanto que o Linux utiliza o caracter "/". Portanto, é importante lembrar de, sempre que alterar partes de um caminho, substituir o "" por "/" em todo o restante do caminho.

  • Os exemplos utilizados a seguir usam como base as seguintes informações:

    • Servidor antigo (Windows) → Endereço IP: 192.168.1.100; hostname: fluig-windows; pasta de instalação: C:\fluig.
    • Servidor novo (Linux) → Endereço IP: 192.168.2.50; hostname: fluig-linux; pasta de instalação: /opt/fluig.
  • Troque o endereço IP do servidor antigo (por exemplo: 192.168.1.100) para o IP do servidor novo (por exemplo: 192.168.2.50).

Exemplos de configurações comumente encontradas com o endereço IP (mas não limitado a apenas esses e nem sempre todos esses existem):

<property name="FLUIG_URL" value="http://${env.FLUIG_CONFIG_SERVER_ADDRESS_UNSECURE:192.168.1.100}:8080"/>
<property name="FLUIG_URL" value="http:192.168.1.100:8080"/>
<property name="NETWORK_IP_ADDRESSES" value="127.0.0.1,127.0.0.1,0:0:0:0:0:0:0:1,192.168.1.100"/>
<inet-address value="${env.FLUIG_CONFIG_SERVER_ADDRESS_MANAGEMENT:192.168.1.100}"/>
<inet-address value="${env.FLUIG_CONFIG_SERVER_ADDRESS_PUBLIC:192.168.1.100}"/>
<inet-address value="${env.FLUIG_CONFIG_SERVER_ADDRESS_UNSECURE:192.168.1.100}"/>
<inet-address value="192.168.1.100"/>
<remote-destination host="${env.FLUIG_HOST_ADDRESS:192.168.1.100}" port="5445"/>
<remote-destination host="192.168.1.100" port="5445"/>
  • Troque o hostmane do servidor antigo (por exemplo: fluig-windows) para o hostname do servidor novo (por exemplo: fluig-linux).

Exemplos de configurações comumente encontradas com o hostname (mas não limitado a apenas esses e nem sempre todos esses existem):

<property name="FLUIG_URL" value="http://${env.FLUIG_CONFIG_SERVER_ADDRESS_UNSECURE:fluig-windows}:8080"/>
<property name="FLUIG_URL" value="http:fluig-windows:8080"/>
<inet-address value="${env.FLUIG_CONFIG_SERVER_ADDRESS_MANAGEMENT:fluig-windows}"/>
<inet-address value="${env.FLUIG_CONFIG_SERVER_ADDRESS_PUBLIC:fluig-windows}"/>
<inet-address value="${env.FLUIG_CONFIG_SERVER_ADDRESS_UNSECURE:fluig-windows}"/>
<inet-address value="fluig-windows"/>
<remote-destination host="${env.FLUIG_HOST_ADDRESS:fluig-windows}" port="5445"/>
<remote-destination host="fluig-windows" port="5445"/>
  • Troque os caminhos do servidor antigo (por exemplo: c:\fluig)  para o caminho do servidor novo (por exemplo: /opt/fluig).

    Atenção!

    • Em servidores Microsoft Windows, o caminho pode aparecer na forma C:\fluig, C:\fluig ou ainda C:/fluig. É importante procurar pelas três formas.
    • Não esqueça de trocar o "**" por "/**".

Exemplos de configurações comumente encontradas com o caminho (mas não limitado a apenas esses e nem sempre todos esses existem):

<property name="FLUIG_INSTALL_CONFIG_PROPERTIES_DIR" value="C:\fluig/repository/wcmdir/config"/>
<property name="FLUIG_INSTALL_DATABASE_UPDATE_DIR" value="C:\fluig/repository/wcmdir"/>
<simple name="java:global/wcm/globalDataDir" value="${env.FLUIG_DATADIR_GLOBAL:C:\fluig/repository/wcmdir}"/>
<simple name="java:global/wcm/localDataDir" value="${env.FLUIG_DATADIR_LOCAL:C:\fluig/repository/wcmlocaldir}"/>
<simple name="java:global/wcm/xmlPagesFile" value="C:\fluig/xml/pages/pages.xml"/>
<simple name="java:global/wcm/xmlGlobalPagesFile" value="C:\fluig/xml/pages/globalPages.xml"/>
<simple name="java:global/wcm/xmlCategories" value="C:\fluig/xml/resources/fdn_category.xml"/>
<simple name="java:global/wcm/xmlResources" value="C:\fluig/xml/resources/fdn_resource.xml"/>
<file name="staticHandler" path="C:\fluig/repository/wcmdir/static"/>
<subsystem xmlns="urn:com.totvs.technology.wcm:1.0" dir="${env.FLUIG_DEPLOY_DIR:C:\fluig\appserver/apps}" refresh="15">

Volume com os arquivos


Um dos principais motivadores de uma migração de um servidor Microsoft Windows para um servidor Linux, é a falta de confiabilidade do Microsoft Windows como servidor de arquivos. Portanto, é muito importante migrar o volume (arquivos) para um servidor Linux também.

Em ambientes onde haverá apenas um servidor do Fluig, o volume pode ser movido para o mesmo servidor Linux onde o Fluig será instalado, mantendo uma estrutura muito semelhante à instalação no servidor Windows.

Mas se o ambiente possuir (ou haver a intenção de possuir) mais de um servidor Fluig, é imprescindível que o volume esteja em algum servidor de arquivos que seja compartilhado (comumente via NFS).

Portanto:

  • faça a cópia dos arquivos do volume atual (Windows) para o volume novo (Linux);

  • monte um caminho (por exemplo: /opt/volume) apontando para o compartilhamento, em caso de uso de um servidor de arquivos dedicado.

Aplicativos customizados


Se possuir aplicativos não padrão, sejam desenvolvidos por equipes internas, por terceiros ou mesmo baixado na Store oficial do Fluig, esses estarão na pasta própria.

Em uma instalação padrão, encontram-se na pasta "appserver/apps".

Esses aplicativos precisam ser disponibilizados manualmente para a nova instalação.

Em uma instalação padrão, com um único servidor Fluig, basta copiar o conteúdo da pasta apps do servidor atual (por exemplo: C:\fluig\appserver\apps) para a pasta apps do novo servidor (por exemplo: /opt/fluig/appserver/apps).

Já em uma instalação em que a pasta apps não esteja no local padrão, é necessário:

  • copiar os aplicativos para uma localização acessível ao Fluig no novo servidor. Por exemplo, em um ambiente com um servidor de arquivos dedicado, poderia estar na pasta "/opt/volume/apps";

  • ajustar a configuração que indica o caminho. Para isso, edite o arquivo appserver/standalone/configuration.xml, procure por algo como:

    <subsystem xmlns="urn:com.totvs.technology.wcm:1.0" dir="${env.FLUIG_DEPLOY_DIR:C:\fluig\appserver/apps}" refresh="15">
    

    e substitua por algo como:

    <subsystem xmlns="urn:com.totvs.technology.wcm:1.0" dir="${env.FLUIG_DEPLOY_DIR:/opt/volume/apps}" refresh="15">
    

Caminho customizado do volume


Se o volume está em um local diferente do local padrão da instalação (FLUIG_DIR/repository), é preciso configurar esse caminho.

Para isso, edite o arquivo appserver/standalone/configuration.xml, procure pela propriedade java:global/wcm/globalDataDir.

Será encontrado algo como:

<simple name="java:global/wcm/globalDataDir" value="${env.FLUIG_DATADIR_GLOBAL:C:\fluig/repository/wcmdir}"/>

Ajuste para algo como:

<simple name="java:global/wcm/globalDataDir" value="${env.FLUIG_DATADIR_GLOBAL:/opt/volume/wcmdir}"/>

Nota:

É importante manter sufixo "/wcmdir".

Banco de dados


O caminho da instalação também é salvo em alguns registros de algumas tabelas e, portanto, precisam ser ajustados também.

Para isso, conecte no banco de dados com algum cliente dele e execute alguns updates.

Tabela FDN_TENANTDATA


Encontre os registros que precisam ser alterados na empresa "0" (dados globais), com um comando como este (a sintaxe está para o banco MySQL, é necessário ajustar de acordo com o banco):

select * from fdn_tenantdata where data_key in ('dirUpload', 'dirDefault', 'dirCustom')  and tenant_id = 0 order by tenantdata_id;

Retornará algo semelhante a isso:

Atualize os registros usando comandos semelhantes a esses:

update fdn_tenantdata set data_value = '/opt/volume/wcmdir/wcm/tenants/wcm' where tenant_id = 0 and data_key = 'dirDefault';
update fdn_tenantdata set data_value = '/opt/volume/wcmlocaldir/wcm/upload' where tenant_id = 0 and data_key = 'dirUpload';
update fdn_tenantdata set data_value = '/opt/volume/wcmlocaldir/wcm/custom' where tenant_id = 0 and data_key = 'dirCustom';

Consulte os registros alterados para conferência:

select * from fdn_tenantdata where data_key in ('dirUpload', 'dirDefault', 'dirCustom')  and tenant_id = 0 order by tenantdata_id;

Retornará algo semelhante a isso:

A seguir, encontre os registros que precisam ser alterados na(s) empresa(s) criada(s), com um comando como esse:

select * from fdn_tenantdata where data_key in ('dirUpload', 'dirDefault', 'dirCustom', 'dirUploadConnect')  and tenant_id > 0 order by tenantdata_id;

Retornará algo semelhante a isso:

Atualize os registros usando comandos semelhantes a esses:

update fdn_tenantdata set data_value = '/opt/volume/1' where data_key = 'dirDefault' and tenant_id = 1234;
update fdn_tenantdata set data_value = '/opt/volume/1/upload' where data_key = 'dirUpload' and tenant_id = 1234;
update fdn_tenantdata set data_value = '/opt/volume/1/uploadConnect' where data_key = 'dirUploadConnect' and tenant_id = 1234;
update fdn_tenantdata set data_value = '/opt/volume/1/custom' where data_key = 'dirCustom' and tenant_id = 1234;

Consulte os registros alterados para conferência:

select * from fdn_tenantdata where data_key in ('dirUpload', 'dirDefault', 'dirCustom')  and tenant_id = 0 order by tenantdata_id;

Retornará algo semelhante a isso:

Nota:

O exemplo acima pressupõe que há apenas uma empresa criada, com o TENANT_ID=1234. Se houver mais empresas, é preciso repetir os procedimentos para cada uma delas, tomando o cuidado de informar o caminho correto para o volume de cada uma.

Por segurança, é interessante verificar se existe (e consequentemente corrigir) mais algum registro apontando para o caminho antigo. Por exemplo, com um comando como esse:

select * from fdn_tenantdata where data_key like 'C:%';

Tabela FDN_PARAMGERAL


Encontre os registros que precisam ser alterados com um comando como este (a sintaxe está para o banco MySQL, é necessário ajustar de acordo com o banco).

Analytics


Encontre e corrija o caminho onde são salvos os dados do Analytics:

select * from fdn_paramgeral where data_key = 'analytics.resources.folder';

update fdn_paramgeral set data_value = '/opt/volume/analytics/resources' where data_key = 'analytics.resources.folder';

select * from fdn_paramgeral where data_key = 'analytics.resources.folder';

Solr


Encontre e corrija o caminho da instalação do Solr:

select * from fdn_paramgeral where data_key = 'totvs/solrHome';

update fdn_paramgeral set data_value = '/opt/fluig/solr' where data_key = 'totvs/solrHome';

select * from fdn_paramgeral where data_key = 'totvs/solrHome';

Outras propriedades


Encontre e corrija o caminho em outras propriedades:

select * from fdn_paramgeral where data_key in ('fluig/themeFormDir', 'webdesk/OOoDir', 'wcm/icons', 'fluig/thumbnailDir');

update fdn_paramgeral set data_value = '/opt/fluig/temaFormulario' where data_key = 'fluig/themeFormDir';
update fdn_paramgeral set data_value = '/opt/fluig/OpenOffice' where data_key = 'webdesk/OOoDir';
update fdn_paramgeral set data_value = '/opt/fluig/icon' where data_key = 'wcm/icons';
update fdn_paramgeral set data_value = '/opt/fluig/thumbnail' where data_key = 'fluig/thumbnailDir';

select * from fdn_paramgeral where data_key in ('fluig/themeFormDir', 'webdesk/OOoDir', 'wcm/icons', 'fluig/thumbnailDir');

Por segurança, é interessante verificar se existe (e consequentemente corrigir) mais algum registro apontando para o caminho antigo. Por exemplo, com um comando como esse:

select * from fdn_paramgeral where data_key like 'C:%';

Tabela FDN_VOLUMESITE


Encontre os registros que precisam ser alterados com um comando como este (a sintaxe está para o banco MySQL, é necessário ajustar de acordo com o banco):

select * from fdn_volumesite;

Retornará algo semelhante a isso:

Importante observar a coluna VOLUMESITE_ID, pois ela contém a chave dos registros que precisam ser alterados.

Atualize os registros usando comandos semelhantes a esses:

update fdn_volumesite set storage = '/opt/volume/1' where volumesite_id = 1;

Consulte os registros alterados para conferência:

select * from fdn_volumesite;

Retornará algo semelhante a isso:

Importante!

As tabelas tratadas aqui são as tabelas padrão e registros padrão. Se possuir tabelas e/ou registros customizados que apontam para o volume, será necessário ajustar manualmente.