automation-suite
2023.4
false
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática.
Guía de instalación de Automation Suite en Linux
Last updated 4 de nov. de 2024

Preparando Orchestrator

Para migrar Orchestrator desde una instancia independiente a Automation Suite, debes recopilar los ajustes y varios archivos de la implementación independiente y aplicarlos a la instalación de Automation Suite.

Dependiendo de las configuraciones que uses en Orchestrator, es posible que necesites preparar web.config, appSettings, almacenamiento, NLog, almacenes de credenciales, claves de cifrado y clave de cifrado por tenant.

Información general sobre la migración

Para migrar Orchestrator desde una instancia independiente a Automation Suite, debes recopilar los ajustes y varios archivos de la implementación independiente y aplicarlos a la instalación de Automation Suite.

Aunque solo parte de los ajustes son configurables en el momento de la instalación, todos deben estar disponibles para la configuración posterior a la instalación.

  • Para configurar los ajustes en el momento de la instalación, añádalos al archivo cluster_config.json.
  • La actualización de los ajustes una vez completada la instalación depende del ámbito de la configuración y de si existe una función para la configuración desde parámetros app-of-apps o no.
Puedes almacenar los archivos personalizados que se necesitan dentro de los pods de Orchestrator como conjuntos u otros archivos de almacenamiento en el almacén de objetos Ceph integrado. Los archivos de almacenamiento se almacenan en un depósito para cada tenant. Los complementos se almacenan en el depósito uipath en orchestrator/plugins/nlog o orchestrator/plugins/securestore.

Puede añadir la configuración personalizada de la siguiente manera:

  • editando los parámetros de la aplicación en ArgoCD (anuladores de parámetros);
  • editando los archivos dentro de Kubernetes ConfigMap orchestrator-customconfig desde el espacio de nombres uipath.

Preparando web.config

La mayoría de los ajustes web.config no tienen un equivalente o se implementan automatización en Automation Suite utilizando otros mecanismos.

Las opciones que deben configurarse son las siguientes:

security.requestFiltering.requestLimits.maxAllowedContentLengthsecurity.requestFiltering.requestLimits.maxAllowedContentLength

Anota el valor de esta configuración para su uso posterior. Decide si necesitas configurarlo en Automation Suite. Su valor predeterminado es 300 MiB.

Preparar AppSettings

Puede que tenga que migrar cambios personalizados realizados en la sección appSettings o secureAppSettings del archivo de configuración UiPath.Orchestrator.dll.config. Puede añadir appSettings y secureAppSettings personalizado al mapa de configuración de orchestrator-customconfig.
En la sección appSettings del archivo de configuración UiPath.Orchestrator.dll.config, identifique los ajustes modificados o añadidos. Guarde estos ajustes en un archivo .json para que estén disponibles en pasos posteriores.

Puede descifrar cualquier sección de configuración de aplicaciones protegida con la opción de configuración protegida de Orchestrator CLI. Solo tiene que utilizar los ajustes que ha cambiado o añadido y que siguen siendo relevantes en Automation Suite.

Nota: puedes crear el archivo appSettings.custom.json como se muestra en el siguiente ejemplo:
{
  "ExampleSetting.Enabled": true,
  "ExampleSetting.Type": "BasicExample",
  "ExampleSetting.Count": 3
}{
  "ExampleSetting.Enabled": true,
  "ExampleSetting.Type": "BasicExample",
  "ExampleSetting.Count": 3
}

Preparar almacenamiento

Decida lo que necesita para la migración de almacenamiento y si su configuración de almacenamiento actual se mantiene igual o va a dejar que Automation Suite gestione el almacenamiento por usted. Automation Suite ofrece la opción de almacenar los blobs en Ceph, que pueden utilizarse en todos los pods de Orchestrator. En caso de una migración, debe copiar los archivos existentes al almacenamiento actual de blobs.

Si utiliza el almacenamiento tipo FileSystem con una carpeta local, copie los datos de la carpeta de almacenamiento en una carpeta ubicada en un nodo desde Automation Suite. A continuación, utilizando una utilidad como rclone, puede copiar los datos en Orchestrator. Si utiliza Ceph, no se requiere otra configuración, ya que esta es la opción predeterminada.
Si desea utilizar FileSystem con un recurso compartido de red de Windows, debe configurar el almacenamiento en la aplicación ArgoCD Orchestrator. Recupere los datos de conexión al recurso compartido de red de Windows de su configuración Orchestrator actual desde la clave Storage.Location. Puesto que Automation Suite se ejecuta en máquinas Linux, no puede utilizar la autenticación integrada para acceder al recurso compartido de red, por lo que necesita las credenciales de cuenta que pueda acceder a él.
Nota: en la actualidad solo se admiten los recursos compartidos de red que usan el protocolo SMB. Los recursos compartidos de red que usan NFS no son compatibles.
Si utiliza opciones de almacenamiento remoto, como Azure, AWS, o Minio, asegúrese de añadir los ajustes Storage.Location y Storage.Type al appSettings.custom.json.

Preparar NLog

Puede realizar las siguientes personalizaciones en NLog:

  • cambiar los objetivos existentes
  • añadir nuevos objetivos
  • añadir extensiones de NLog

Consulte la sección de NLog del archivo de configuración y cree la configuración personalizada de NLog. Para habilitar el almacenamiento de registros de robot en Elasticsearch, puede proporcionar el nombre de usuario, la contraseña y el URI como parámetros de Automation Suite y el objetivo se configura automáticamente. Para habilitar escenarios personalizados para los registros de robot, debe configurar el objetivo manualmente.

Si necesita extensiones de NLog, cree una carpeta que contenga todas las extensiones y sus dependencias.

Nota: por ejemplo, la carpeta podría llamarse nlogextensions. De forma predeterminada, Orchestrator carga las siguientes extensiones, por lo que no debe incluirlas en la carpeta o la configuración de NLog:
NLog.Targets.ElasticSearch
UiPath.Orchestrator.Logs.Elasticsearch
Microsoft.ApplicationInsights.NLogTarget
NLog.Extensions.AzureEventHubNLog.Targets.ElasticSearch
UiPath.Orchestrator.Logs.Elasticsearch
Microsoft.ApplicationInsights.NLogTarget
NLog.Extensions.AzureEventHub
Cree el archivo nlog.custom.config que contiene las secciones las extensiones, los objetivos y las reglas estándar.
La sección de extensiones es una matriz de elementos que especifican los conjuntos de extensiones utilizando assemblyFile, y la ruta del consjunto relativa a la carpeta nlogextensions.
Orchestrator define los objetivos y las reglas de NLog que están configurados total o parcialmente para casos de uso común. Cuando se requiere la personalización de estos objetivos, solo debe incluir las propiedades modificadas en la configuración de NLog. No se pueden eliminar las propiedades existentes de la configuración predefinida, pero sí puede cambiarlas. En el pod de Orchestrator, los objetivos incluidos de manera predeterminada están definidos en la ubicación /opt/app-root/app/nlog.config.json.
Nota: ejemplo: archivo nlog.custom.config que escribe los registros en Azure Blob:
{
  "NLog": {
    "autoReload": false,
    "throwConfigExceptions": false,
    "internalLogLevel": "Warn",
    "internalLogToConsole": true,
    "default-wrapper": {
      "type": "UiPrettyExceptionWrapper"
    },
    "targets": {
      "robotElasticBuffer": {
        "type": "BufferingWrapper",
        "flushTimeout": 5000,
        "target": {
          "type": "ElasticSearch",
          "name": "robotElastic",
          "requireAuth": false,
          "uri": "",
          "username": "",
          "password": "",
          "index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
          "documentType": "logEvent",
          "includeAllProperties": true,
          "layout": "${message}",
          "excludedProperties": "agentSessionId,tenantId,indexName"
        }
      },
      "serverElasticBuffer": {
        "type": "BufferingWrapper",
        "flushTimeout": 5000,
        "target": {
          "type": "ElasticSearch",
          "name": "serverElastic",
          "requireAuth": false,
          "uri": "",
          "username": "",
          "password": "",
          "index": "serverdiagnostics-${date:format=yyyy.MM}",
          "documentType": "logEvent",
          "includeAllProperties": true,
          "layout": "${machinename} ${message}"
        }
      },
      "database": {
        "type": "AsyncWrapper",
        "overflowAction": "Block",
        "queueLimit": 100,
        "fullBatchSizeWriteLimit": 2,
        "batchSize": 50,
        "timeToSleepBetweenBatches": 1,
        "optimizeBufferReuse": true,
        "target": {
          "type": "Database",
          "dbProvider": "sqlserver",
          "connectionString": "${ui-connection-strings:item=Default}",
          "keepConnection": "true",
          "isolationLevel": "ReadCommitted",
          "commandText": "INSERT INTO dbo.Logs (OrganizationUnitId, TenantId, TimeStamp, Level, WindowsIdentity, ProcessName, JobKey, Message, RawMessage, RobotName, MachineId, UserKey, HostMachineName) VALUES (@organizationUnitId, @tenantId, @timeStamp, @level, @windowsIdentity, @processName, @jobId, @message, @rawMessage, @robotName, @machineId, @userKey, @hostMachineName)",
          "parameters": [
            {
              "name": "@organizationUnitId",
              "layout": "${event-properties:item=organizationUnitId}"
            },
            {
              "name": "@tenantId",
              "layout": "${event-properties:item=tenantId}"
            },
            {
              "name": "@timeStamp",
              "layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
            },
            {
              "name": "@level",
              "layout": "${event-properties:item=levelOrdinal}"
            },
            {
              "name": "@windowsIdentity",
              "layout": "${event-properties:item=windowsIdentity}"
            },
            {
              "name": "@processName",
              "layout": "${event-properties:item=processName}"
            },
            {
              "name": "@jobId",
              "layout": "${event-properties:item=jobId}"
            },
            {
              "name": "@message",
              "layout": "${message}"
            },
            {
              "name": "@rawMessage",
              "layout": "${event-properties:item=rawMessage}"
            },
            {
              "name": "@robotName",
              "layout": "${event-properties:item=robotName}"
            },
            {
              "name": "@machineId",
              "layout": "${event-properties:item=machineId}"
            },
            {
              "name": "@userKey",
              "layout": "${event-properties:item=userKey}"
            },
            {
              "name": "@hostMachineName",
              "layout": "${event-properties:item=machineName}"
            }
          ]
        }
      },
      "monitoring": {
        "type": "BufferingWrapper",
        "bufferSize": 100,
        "flushTimeout": 5000,
        "slidingTimeout": false,
        "target": {
          "type": "Database",
          "dbProvider": "sqlserver",
          "connectionString": "${ui-connection-strings:item=Default}",
          "keepConnection": "true",
          "commandText": "insert into stats.ErrorLogs (OrganizationUnitId, TenantId, TimeStamp, CorrelationId, Source, Level, RobotId, ProcessName, JobKey, QueueDefinitionId, Message) values (@organizationUnitId, @tenantId, @timestamp, @correlationId, @logSource, @level, @robotId, @processName, @jobId, @queueId, @message)",
          "parameters": [
            {
              "name": "@organizationUnitId",
              "layout": "${event-properties:item=organizationUnitId}"
            },
            {
              "name": "@tenantId",
              "layout": "${event-properties:item=tenantId}"
            },
            {
              "name": "@timestamp",
              "layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
            },
            {
              "name": "@correlationId",
              "layout": "${event-properties:item=Correlation}"
            },
            {
              "name": "@logSource",
              "layout": "${event-properties:item=logSource}"
            },
            {
              "name": "@level",
              "layout": "${event-properties:item=levelOrdinal}"
            },
            {
              "name": "@robotId",
              "layout": "${event-properties:item=robotId}"
            },
            {
              "name": "@processName",
              "layout": "${event-properties:item=processName}"
            },
            {
              "name": "@jobId",
              "layout": "${event-properties:item=jobId}"
            },
            {
              "name": "@queueId",
              "layout": "${event-properties:item=queueId}"
            },
            {
              "name": "@message",
              "layout": "${message}"
            }
          ]
        }
      },
      "insightsRobotLogs": {
        "type": "BufferingWrapper",
        "bufferSize": 100,
        "flushTimeout": 5000,
        "slidingTimeout": false,
        "target": {
          "type": "Database",
          "dbProvider": "sqlserver",
          "connectionString": "${ui-connection-strings:item=Insights}",
          "keepConnection": "true",
          "commandText": "insert into dbo.RobotLogs (OrganizationUnitId, TenantId, TimeStamp, WindowsIdentity, ProcessName, JobKey, RawMessage, RobotName, MachineId, Message, LevelOrdinal, NumCustomFields) values (@organizationUnitId, @tenantId, @timeStamp, @windowsIdentity, @processName, @jobId, @rawMessage, @robotName, @machineId, @message, @levelOrdinal, @numCustomFields)",
          "parameters": [
            {
              "name": "@organizationUnitId",
              "layout": "${event-properties:item=organizationUnitId}"
            },
            {
              "name": "@tenantId",
              "layout": "${event-properties:item=tenantId}"
            },
            {
              "name": "@timeStamp",
              "layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
            },
            {
              "name": "@windowsIdentity",
              "layout": "${event-properties:item=windowsIdentity}"
            },
            {
              "name": "@processName",
              "layout": "${event-properties:item=processName}"
            },
            {
              "name": "@jobId",
              "layout": "${event-properties:item=jobId}"
            },
            {
              "name": "@rawMessage",
              "layout": "${event-properties:item=rawMessage}"
            },
            {
              "name": "@robotName",
              "layout": "${event-properties:item=robotName}"
            },
            {
              "name": "@machineId",
              "layout": "${event-properties:item=machineId}"
            },
            {
              "name": "@message",
              "layout": "${message}"
            },
            {
              "name": "@levelOrdinal",
              "layout": "${event-properties:item=levelOrdinal}"
            },
            {
              "name": "@numCustomFields",
              "layout": "${ui-robot-logs-num-custom-fields}"
            }
          ]
        }
      },
      "stdout": {
        "type": "Console",
        "layout": {
          "type": "JsonLayout",
          "includeAllProperties": true,
          "Attributes": [
            {
              "name": "ts",
              "layout": "${longdate}"
            },
            {
              "name": "traceId",
              "layout": "${aspnet-TraceIdentifier}"
            },
            {
              "name": "level",
              "layout": "${level:upperCase=true}"
            },
            {
              "name": "logger",
              "layout": "${logger}"
            },
            {
              "name": "message",
              "layout": "${message}"
            },
            {
              "name": "exception",
              "layout": "${onexception:${ui-pretty-exception}}"
            }
          ]
        }
      }
    },
    "rules": {
      "10_Robot_Insights": {
        "logger": "Robot.*",
        "ruleName": "insightsRobotLogsRule",
        "minLevel": "Info",
        "writeTo": "insightsRobotLogs",
        "enabled": false,
        "final": false,
        "filterDefaultAction": "Log"
      },
      "20_Robot_Primary": {
        "logger": "Robot.*",
        "ruleName": "primaryRobotLogsTarget",
        "writeTo": "database",
        "minLevel": "Trace",
        "maxLevel": "Fatal",
        "final": true
      },
      "30_Business_Exceptions": {
        "logger": "BusinessException.*",
        "minLevel": "Info",
        "writeTo": "",
        "enabled": true,
        "final": true
      },
      "40_Monitoring": {
        "logger": "Monitoring.*",
        "minLevel": "Warn",
        "maxLevel": "Fatal",
        "writeTo": "monitoring",
        "final": true
      },
      "50_Quartz": {
        "logger": "Quartz.*",
        "minLevel": "Warn",
        "writeTo": "stdout",
        "final": true
      },
      "60_Quartz_Blackhole": {
        "logger": "Quartz.*",
        "maxLevel": "Warn",
        "writeTo": "",
        "final": true
      },
      "70_Final": {
        "logger": "*",
        "minLevel": "Info",
        "maxLevel": "Fatal",
        "writeTo": "stdout",
        "final": false
      }
    }
  }
}{
  "NLog": {
    "autoReload": false,
    "throwConfigExceptions": false,
    "internalLogLevel": "Warn",
    "internalLogToConsole": true,
    "default-wrapper": {
      "type": "UiPrettyExceptionWrapper"
    },
    "targets": {
      "robotElasticBuffer": {
        "type": "BufferingWrapper",
        "flushTimeout": 5000,
        "target": {
          "type": "ElasticSearch",
          "name": "robotElastic",
          "requireAuth": false,
          "uri": "",
          "username": "",
          "password": "",
          "index": "${event-properties:item=indexName}-${date:format=yyyy.MM}",
          "documentType": "logEvent",
          "includeAllProperties": true,
          "layout": "${message}",
          "excludedProperties": "agentSessionId,tenantId,indexName"
        }
      },
      "serverElasticBuffer": {
        "type": "BufferingWrapper",
        "flushTimeout": 5000,
        "target": {
          "type": "ElasticSearch",
          "name": "serverElastic",
          "requireAuth": false,
          "uri": "",
          "username": "",
          "password": "",
          "index": "serverdiagnostics-${date:format=yyyy.MM}",
          "documentType": "logEvent",
          "includeAllProperties": true,
          "layout": "${machinename} ${message}"
        }
      },
      "database": {
        "type": "AsyncWrapper",
        "overflowAction": "Block",
        "queueLimit": 100,
        "fullBatchSizeWriteLimit": 2,
        "batchSize": 50,
        "timeToSleepBetweenBatches": 1,
        "optimizeBufferReuse": true,
        "target": {
          "type": "Database",
          "dbProvider": "sqlserver",
          "connectionString": "${ui-connection-strings:item=Default}",
          "keepConnection": "true",
          "isolationLevel": "ReadCommitted",
          "commandText": "INSERT INTO dbo.Logs (OrganizationUnitId, TenantId, TimeStamp, Level, WindowsIdentity, ProcessName, JobKey, Message, RawMessage, RobotName, MachineId, UserKey, HostMachineName) VALUES (@organizationUnitId, @tenantId, @timeStamp, @level, @windowsIdentity, @processName, @jobId, @message, @rawMessage, @robotName, @machineId, @userKey, @hostMachineName)",
          "parameters": [
            {
              "name": "@organizationUnitId",
              "layout": "${event-properties:item=organizationUnitId}"
            },
            {
              "name": "@tenantId",
              "layout": "${event-properties:item=tenantId}"
            },
            {
              "name": "@timeStamp",
              "layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
            },
            {
              "name": "@level",
              "layout": "${event-properties:item=levelOrdinal}"
            },
            {
              "name": "@windowsIdentity",
              "layout": "${event-properties:item=windowsIdentity}"
            },
            {
              "name": "@processName",
              "layout": "${event-properties:item=processName}"
            },
            {
              "name": "@jobId",
              "layout": "${event-properties:item=jobId}"
            },
            {
              "name": "@message",
              "layout": "${message}"
            },
            {
              "name": "@rawMessage",
              "layout": "${event-properties:item=rawMessage}"
            },
            {
              "name": "@robotName",
              "layout": "${event-properties:item=robotName}"
            },
            {
              "name": "@machineId",
              "layout": "${event-properties:item=machineId}"
            },
            {
              "name": "@userKey",
              "layout": "${event-properties:item=userKey}"
            },
            {
              "name": "@hostMachineName",
              "layout": "${event-properties:item=machineName}"
            }
          ]
        }
      },
      "monitoring": {
        "type": "BufferingWrapper",
        "bufferSize": 100,
        "flushTimeout": 5000,
        "slidingTimeout": false,
        "target": {
          "type": "Database",
          "dbProvider": "sqlserver",
          "connectionString": "${ui-connection-strings:item=Default}",
          "keepConnection": "true",
          "commandText": "insert into stats.ErrorLogs (OrganizationUnitId, TenantId, TimeStamp, CorrelationId, Source, Level, RobotId, ProcessName, JobKey, QueueDefinitionId, Message) values (@organizationUnitId, @tenantId, @timestamp, @correlationId, @logSource, @level, @robotId, @processName, @jobId, @queueId, @message)",
          "parameters": [
            {
              "name": "@organizationUnitId",
              "layout": "${event-properties:item=organizationUnitId}"
            },
            {
              "name": "@tenantId",
              "layout": "${event-properties:item=tenantId}"
            },
            {
              "name": "@timestamp",
              "layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
            },
            {
              "name": "@correlationId",
              "layout": "${event-properties:item=Correlation}"
            },
            {
              "name": "@logSource",
              "layout": "${event-properties:item=logSource}"
            },
            {
              "name": "@level",
              "layout": "${event-properties:item=levelOrdinal}"
            },
            {
              "name": "@robotId",
              "layout": "${event-properties:item=robotId}"
            },
            {
              "name": "@processName",
              "layout": "${event-properties:item=processName}"
            },
            {
              "name": "@jobId",
              "layout": "${event-properties:item=jobId}"
            },
            {
              "name": "@queueId",
              "layout": "${event-properties:item=queueId}"
            },
            {
              "name": "@message",
              "layout": "${message}"
            }
          ]
        }
      },
      "insightsRobotLogs": {
        "type": "BufferingWrapper",
        "bufferSize": 100,
        "flushTimeout": 5000,
        "slidingTimeout": false,
        "target": {
          "type": "Database",
          "dbProvider": "sqlserver",
          "connectionString": "${ui-connection-strings:item=Insights}",
          "keepConnection": "true",
          "commandText": "insert into dbo.RobotLogs (OrganizationUnitId, TenantId, TimeStamp, WindowsIdentity, ProcessName, JobKey, RawMessage, RobotName, MachineId, Message, LevelOrdinal, NumCustomFields) values (@organizationUnitId, @tenantId, @timeStamp, @windowsIdentity, @processName, @jobId, @rawMessage, @robotName, @machineId, @message, @levelOrdinal, @numCustomFields)",
          "parameters": [
            {
              "name": "@organizationUnitId",
              "layout": "${event-properties:item=organizationUnitId}"
            },
            {
              "name": "@tenantId",
              "layout": "${event-properties:item=tenantId}"
            },
            {
              "name": "@timeStamp",
              "layout": "${date:format=yyyy-MM-dd HH\\:mm\\:ss.fff}"
            },
            {
              "name": "@windowsIdentity",
              "layout": "${event-properties:item=windowsIdentity}"
            },
            {
              "name": "@processName",
              "layout": "${event-properties:item=processName}"
            },
            {
              "name": "@jobId",
              "layout": "${event-properties:item=jobId}"
            },
            {
              "name": "@rawMessage",
              "layout": "${event-properties:item=rawMessage}"
            },
            {
              "name": "@robotName",
              "layout": "${event-properties:item=robotName}"
            },
            {
              "name": "@machineId",
              "layout": "${event-properties:item=machineId}"
            },
            {
              "name": "@message",
              "layout": "${message}"
            },
            {
              "name": "@levelOrdinal",
              "layout": "${event-properties:item=levelOrdinal}"
            },
            {
              "name": "@numCustomFields",
              "layout": "${ui-robot-logs-num-custom-fields}"
            }
          ]
        }
      },
      "stdout": {
        "type": "Console",
        "layout": {
          "type": "JsonLayout",
          "includeAllProperties": true,
          "Attributes": [
            {
              "name": "ts",
              "layout": "${longdate}"
            },
            {
              "name": "traceId",
              "layout": "${aspnet-TraceIdentifier}"
            },
            {
              "name": "level",
              "layout": "${level:upperCase=true}"
            },
            {
              "name": "logger",
              "layout": "${logger}"
            },
            {
              "name": "message",
              "layout": "${message}"
            },
            {
              "name": "exception",
              "layout": "${onexception:${ui-pretty-exception}}"
            }
          ]
        }
      }
    },
    "rules": {
      "10_Robot_Insights": {
        "logger": "Robot.*",
        "ruleName": "insightsRobotLogsRule",
        "minLevel": "Info",
        "writeTo": "insightsRobotLogs",
        "enabled": false,
        "final": false,
        "filterDefaultAction": "Log"
      },
      "20_Robot_Primary": {
        "logger": "Robot.*",
        "ruleName": "primaryRobotLogsTarget",
        "writeTo": "database",
        "minLevel": "Trace",
        "maxLevel": "Fatal",
        "final": true
      },
      "30_Business_Exceptions": {
        "logger": "BusinessException.*",
        "minLevel": "Info",
        "writeTo": "",
        "enabled": true,
        "final": true
      },
      "40_Monitoring": {
        "logger": "Monitoring.*",
        "minLevel": "Warn",
        "maxLevel": "Fatal",
        "writeTo": "monitoring",
        "final": true
      },
      "50_Quartz": {
        "logger": "Quartz.*",
        "minLevel": "Warn",
        "writeTo": "stdout",
        "final": true
      },
      "60_Quartz_Blackhole": {
        "logger": "Quartz.*",
        "maxLevel": "Warn",
        "writeTo": "",
        "final": true
      },
      "70_Final": {
        "logger": "*",
        "minLevel": "Info",
        "maxLevel": "Fatal",
        "writeTo": "stdout",
        "final": false
      }
    }
  }
}
Nota: la carpeta de extensiones nlogextensions se copia en el almacén de objetos en la ubicación de complementos conocida. La herramienta de configuración de Orchestrator puede hacerlo automáticamente a la vez que actualiza la configuración de NLog. El script cambia automáticamente nlog.custom.config para prefijar cada archivo assemblyFile de la matriz de extensiones con /var/orchestrator/plugins/nlog/ si no está prefijado ya.

Preparar almacenes de credenciales

Puede migrar los complementos personalizados para los almacenes de credenciales a Automation Suite. Para ello, actualice la configuración en el mapa de configuración y copie los conjuntos de complementos en el depósito correspondiente del almacén de objetos.

Nota:
  • Los complementos deben funcionar con Linux.
  • Los complementos no deben copiarse en ningún almacenamiento, aparte de /tmp.

Los siguientes complementos de almacenes de credenciales se implementan automáticamente en Orchestrator en Automation Suite:

  • UiPath.Orchestrator.AzureKeyVault.SecureStore.dll
  • UiPath.Orchestrator.SecureStore.CyberArkCCP.dll

Nota: Automation Suite no es compatible con CyberArk AIM, por lo que no puedes migrarlo. Recomendamos migrar al almacén de credenciales de CyberArkCCP.
Si utiliza otros complementos de almacenes de credenciales, cópielos en una carpeta, como securestoreplugins.
Añada la configuración del almacén de credenciales en el archivo appSettings.custom.json del modo que sigue:
  • para deshabilitar complementos predeterminados, añade la configuración Plugins.SecureStores.Default con un valor de cadena vacío en appSettings.custom.json;
  • añade todos los complementos personalizados a la configuración de Plugins.SecureStores separados por ; en appSettings.custom.json;
  • añade los ajustes de complementos personalizados de la siguiente manera: Plugins.SecureStores.<<FriendlyName>>.<<SettingName>>.
Nota:
La carpeta de complementos securestoreplugins se copia en el almacén de objetos en la ubicación de complementos conocida.
Los conjuntos de Plugins.SecureStores se cargan desde esta carpeta.
Los conjuntos de Plugins.SecureStore.Default se cargan desde la carpeta de complementos de la carpeta de aplicaciones de Orchestrator.

Preparar la clave de cifrado.

De manera predeterminada, en el momento de la instalación, Orchestrator genera una clave de cifrado que se utilizará para la información confidencial de la base de datos. Debe migrar esta clave si desea reutilizar una base de datos en una nueva implementación de Orchestrator

Para recuperar la clave de cifrado, sigue los siguientes pasos:

  1. Descifra la sección secureAppSettings del archivo UiPath.Orchestrator.dll.config, si fuera necesario. Para obtener más detalles, consulta Cifrar secciones UiPath.Orchestrator.dll.config.
  2. Recupera la clave de cifrado desde UiPath.Orchestrator.dll.config. Para obtener más detalles, consulta Clave de cifrado.

Preparar la clave de cifrado por tenant

El certificado de clave de cifrado está instalado en el almacén de certificados de Windows. Debe proporcionar el certificado al entorno de Automation Suite para que esté disponible para los pods de Orchestrator.

Los ajustes CertificatesStoreLocation y Azure.KeyVault.CertificateThumbprint ya no son necesarios en Automation Suite, pero puede usar el CertificatePassword si es necesario.

Lleve a cabo los pasos siguientes:

  1. Revise appSettings y obtenga los ajustes AzureKeyVault.*.
  2. Guarde el Azure.KeyVault.VaultAddress, Azure.KeyVault.ClientId y Azure.KeyVault.DirectoryId para su uso posterior.
  3. Recupere el certificado y, si es necesario, la contraseña del certificado.

¿Te ha resultado útil esta página?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Uipath Logo White
Confianza y seguridad
© 2005-2024 UiPath. Todos los derechos reservados.