- Visão geral
- Requisitos
- Instalação
- Pós-instalação
- Migração e atualização
- Atualização do Automation Suite no EKS/AKS
- Opções de migração
- Etapa 1: mover os dados da organização do Identity, de independente para o Automation Suite
- Etapa 2: restauração do banco de dados de produtos independente
- Etapa 3: backup do banco de dados da plataforma no Automation Suite
- Etapa 4: mesclando organizações no Automation Suite
- Etapa 5: atualização das strings de conexão do produto migradas
- Etapa 6: migração do Insights independente
- Etapa 7: exclusão do tenant padrão
- B) Migração de um único tenant
- Monitoramento e alertas
- Administração de cluster
- Configuração específica do produto
- Preparando o Orchestrator
- Atualização da configuração do Orchestrator
- Limpeza do banco de dados do Orchestrator
- Solução de problemas
Preparando o Orchestrator
Para migrar o Orchestrator da licença independente para o Automation Suite, você deve reunir definições e vários arquivos da instalação independente e aplicá-los à instalação do Automation Suite.
Dependendo das configurações que você usa no Orchestrator, você pode precisar preparar web.config, appSettings, armazenamento, NLog, armazenamentos de credenciais, chaves de criptografia e chave de criptografia por tenant.
Visão geral da migração
Para migrar o Orchestrator da licença independente para o Automation Suite, você deve reunir definições e vários arquivos da instalação independente e aplicá-los à instalação do Automation Suite.
Embora apenas parte das definições seja configurável no momento da instalação, todas devem estar disponíveis para configuração pós-instalação.
- Para configurar as definições no momento da instalação, adicione-as no arquivo
cluster_config.json; - A atualização das definições após a conclusão da instalação depende de qual é o escopo da configuração e se uma funcionalidade está disponível para configuração a partir dos parâmetros de aplicativo-de-aplicativos ou não.
You can store custom files that are needed inside the Orchestrator pods, such as assemblies or other storage files, in the built-in Ceph object store. The storage files are stored in a bucket for each tenant. The plugins are stored in the uipath bucket under orchestrator/plugins/nlog or orchestrator/plugins/securestore.
Você pode adicionar configuração personalizada da seguinte maneira:
- editando os parâmetros da aplicação no ArgoCD (substituições de parâmetros);
- editando os arquivos dentro do ConfigMap do Kubernetes
orchestrator-customconfiga partir do namespaceuipath.
Preparando web.config
A maioria das configurações web.config não tem um equivalente ou é implementada no Automation Suite usando outros mecanismos.
As opções que você precisa configurar são as seguintes:
security.requestFiltering.requestLimits.maxAllowedContentLength
security.requestFiltering.requestLimits.maxAllowedContentLength
Tome nota do valor dessa configuração para uso posterior. Decida se você precisa configurá-la no Automation Suite. Seu valor padrão é 300MiB.
Preparando AppSettings
Pode ser necessário migrar as alterações personalizadas feitas na seção appSettings ou secureAppSettings do arquivo de configuração UiPath.Orchestrator.dll.config. Você pode adicionar appSettings e secureAppSettings personalizados ao mapa de configuração orchestrator-customconfig.
Na seção appSettings do arquivo de configuração UiPath.Orchestrator.dll.config, identifique qualquer configuração modificada ou adicionada. Salve essas configurações em um arquivo .json para que estejam disponíveis em etapas posteriores.
Você pode descriptografar qualquer seção de configuração de aplicativo protegida com a opção de configuração protegida da CLI do Orchestrator. Você só precisa usar as configurações que alterou ou adicionou e ainda são relevantes no Automation Suite.
You can create the appsettings.json file as shown in the following example:
{
"ExampleSetting.Enabled": true,
"ExampleSetting.Type": "BasicExample",
"ExampleSetting.Count": 3
}
{
"ExampleSetting.Enabled": true,
"ExampleSetting.Type": "BasicExample",
"ExampleSetting.Count": 3
}
Preparando armazenamento
Decide what you need for the storage migration and if your current storage configuration stays the same or if you would instead let Automation Suite manage the storage for you. Automation Suite offers the option to store the blobs in Ceph, which can be used in all Orchestrator pods. In the case of a migration, you must copy the existing files to the current blob storage.
Se você estiver usando armazenamento do tipo FileSystem com uma pasta local, copie os dados da pasta de armazenamento para uma pasta em um nó do Automation Suite. Em seguida, utilizando um utilitário como rclone, você pode copiar os dados para o Orchestrator. Se você usa o Ceph, nenhuma configuração adicional será necessária, pois essa é a opção padrão.
Se você quiser usar o sistema de arquivos com um compartilhamento de rede do Windows, precisará configurar o armazenamento no aplicativo ArgoCD do Orchestrator. Recupere os dados de conexão para o compartilhamento de rede do Windows a partir da chave Storage.Location de sua configuração atual do Orchestrator. Como o Automation Suite é executado em máquinas Linux, você não pode contar com a autenticação integrada para acessar o compartilhamento de rede, portanto, precisa das credenciais de uma conta que possa acessá-lo.
Atualmente, apenas compartilhamentos de rede que usam o protocolo SMB são compatíveis. Compartilhamentos de rede que empregam NFS não são compatíveis.
Se você usar opções de armazenamento remoto, como Azure, AWS ou Minio, certifique-se de adicionar as configurações Storage.Location e Storage.Type ao arquivo appsettings.json.
Preparando o NLog
Você pode fazer as seguintes personalizações ao NLog:
- alterar os destinos existentes
- adicionar novos destinos
- adicionar extensões do NLog
Revise a seção NLog do arquivo de configuração e crie a configuração personalizada do NLog. Para habilitar o armazenamento de logs do robô no Elasticsearch, você pode fornecer o nome de usuário, a senha e o URI como parâmetros do Automation Suite, e o destino é configurado automaticamente. Para habilitar cenários personalizados para logs do robô, você precisa configurar o destino manualmente.
Se forem necessárias extensões NLog, crie uma pasta contendo todas as extensões e suas dependências.
For example, the folder could be named nlogextensions. By default, Orchestrator loads the following extensions, so you do not need to include them in the folder or the NLog configuration:
NLog.Targets.ElasticSearch
UiPath.Orchestrator.Logs.Elasticsearch
Microsoft.ApplicationInsights.NLogTarget
NLog.Extensions.AzureEventHub
NLog.Targets.ElasticSearch
UiPath.Orchestrator.Logs.Elasticsearch
Microsoft.ApplicationInsights.NLogTarget
NLog.Extensions.AzureEventHub
Crie o nlog.custom.configarquivo que contém as seções padrão: extensões, destinos e regras.
assemblyFileA seção de extensões é uma matriz de itens que especificam os conjuntos de extensão usando e o caminho do conjunto relativo à nlogextensionspasta .
O Orchestrator define destinos e regras NLog que são configurados, ou parcialmente configurados, para casos de uso comuns. Quando a personalização é necessária para esses destinos, você só precisa incluir as propriedades modificadas na configuração do NLog. Você não pode remover propriedades existentes da configuração predefinida; você pode, no entanto, alterá-las. No pod do Orchestrator, os destinos incluídos por padrão são definidos no local /opt/app-root/app/nlog.config.json.
Example: nlog.custom.config file that writes logs to Azure Blob:
{ "NLog": {
"extensions": [
{ "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" }
],
"targets": {
"azureBlob": {
"type": "AzureBlobStorage",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net",
"container": "orchestratorlogs",
"blobName": "${date:format=yyyy-MM-dd hh.mm}",
"layout": {
"type": "JsonLayout",
"includeAllProperties": true,
"Attributes": [
{"name": "ts","layout": "${longdate}"},
{"name": "level","layout": "${level:upperCase=true}"},
{"name": "logger","layout": "${logger}"},
{"name": "message","layout": "${message}"},
{"name": "exception","layout": "${onexception:${ui-pretty-exception}}"}
]
}
}
},
"rules": { "70_Final": { "writeTo": "stdout,azureBlob" } }
}
}
{ "NLog": {
"extensions": [
{ "assemblyFile": "NLog.Extensions.AzureBlobStorage.dll" }
],
"targets": {
"azureBlob": {
"type": "AzureBlobStorage",
"connectionString": "DefaultEndpointsProtocol=https;AccountName=test;AccountKey=key;EndpointSuffix=core.windows.net",
"container": "orchestratorlogs",
"blobName": "${date:format=yyyy-MM-dd hh.mm}",
"layout": {
"type": "JsonLayout",
"includeAllProperties": true,
"Attributes": [
{"name": "ts","layout": "${longdate}"},
{"name": "level","layout": "${level:upperCase=true}"},
{"name": "logger","layout": "${logger}"},
{"name": "message","layout": "${message}"},
{"name": "exception","layout": "${onexception:${ui-pretty-exception}}"}
]
}
}
},
"rules": { "70_Final": { "writeTo": "stdout,azureBlob" } }
}
}
A pasta de extensões nlogextensions é copiada no armazenamento de objeto no local de plug-ins conhecidos. A Ferramenta de Configuração do Orchestrator pode fazer isso automaticamente atualizando, simultaneamente, a configuração do NLog. O script altera nlog.custom.config automaticamente para prefixar cada assemblyFile da matriz de extensões com /var/orchestrator/plugins/nlog/ se ainda não estiver prefixado.
Preparando armazenamentos de credenciais
Você pode migrar plug-ins personalizados de armazenamentos de credenciais para o Automation Suite. Para fazer isso, atualize a configuração no mapa de configuração e copie os conjuntos de plug-ins para o bucket de armazenamento de objetos correspondente.
- Os plug-ins devem funcionar no Linux.
- Os plugins não devem gravar em nenhum armazenamento além de
/tmp.
Os seguintes plug-ins de armazenamento de credenciais são implantados automaticamente no Orchestrator via Automation Suite:
UiPath.Orchestrator.AzureKeyVault.SecureStore.dllUiPath.Orchestrator.SecureStore.CyberArkCCP.dll
O Automation Suite não oferece suporte ao CyberArk AIM, portanto, você não pode migrá-lo. Recomendamos migrar para o armazenamento de credenciais CyberArkCCP.
Se você usar qualquer outro plug-in dos Armazenamentos de Credenciais, copie-o em uma pasta, como securestoreplugins.
Adicione as configurações do Armazenamento de Credenciais no arquivo appsettings.json da seguinte maneira:
- para desabilitar os plug-ins padrão, adicione a configuração
Plugins.SecureStores.Defaultcom um valor vazio de string emappsettings.json; - adicione todos os plug-ins personalizados à configuração
Plugins.SecureStores, separados por;emappsettings.json; - adicione qualquer configuração de plug-in personalizado da seguinte maneira:
Plugins.SecureStores.<<FriendlyName>>.<<SettingName>>.
A pasta do plug-in securestoreplugins é copiada no armazenamento de objetos no local conhecido de plug-ins.
Os assemblies em Plugins.SecureStores são carregados a partir desta pasta.
Os assemblies de Plugins.SecureStore.Default são carregados a partir da pasta de plug-ins na pasta do aplicativo Orchestrator.
Preparando a chave de criptografia
Por padrão, no momento da instalação, o Orchestrator gera uma Chave de Criptografia a ser usada para as informações confidenciais no banco de dados. Você deve migrar essa chave se quiser reutilizar um banco de dados em uma nova implantação do Orchestrator.
A partir da seção secureAppSettings da configuração, recupere o valor de EncryptionKey e armazene-o com segurança para uso posterior.
Preparando a chave de criptografia por Tenant
O certificado de chave de criptografia é instalado no repositório de certificados do Windows. Você deve fornecer o certificado ao ambiente do Automation Suite para que esteja disponível para os pods do Orchestrator.
As configurações CertificatesStoreLocation e Azure.KeyVault.CertificateThumbprint não são mais necessárias no Automation Suite, mas você pode usar CertificatePassword se necessário.
Siga as seguintes etapas:
- Revise o appSettings e obtenha as configurações
AzureKeyVault.*. - Armazene
Azure.KeyVault.VaultAddress,Azure.KeyVault.ClientIdeAzure.KeyVault.DirectoryIdpara uso posterior. - Recupere o certificado e, se necessário, a senha do certificado.