automation-suite
2023.4
false
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique.
Guide d'installation d'Automation Suite sur Linux
Last updated 4 oct. 2024

Préparation d'Orchestrator

Pour migrer Orchestrator d'une version autonome vers Automation Suite, vous devez rassembler les paramètres et divers fichiers de l'installation autonome et les appliquer à l'installation d'Automation Suite.

Selon les configurations que vous utilisez dans Orchestrator, vous devrez peut-être préparer web.config, appSettings, le stockage, NLog, les magasins d'informations d'identification, les clés de chiffrement et la clé de chiffrement par locataire.

Présentation de la migration

Pour migrer Orchestrator d'une version autonome vers Automation Suite, vous devez rassembler les paramètres et divers fichiers de l'installation autonome et les appliquer à l'installation d'Automation Suite.

Bien qu'une partie seulement des paramètres soit configurable au moment de l'installation, tous doivent être disponibles pour la configuration post-installation.

  • Pour configurer les paramètres au moment de l'installation, ajoutez-les dans le fichier cluster_config.json ;
  • La mise à jour des paramètres une fois l'installation terminée dépend de l'étendue du paramètre et de l'existence ou non d'une fonctionnalité destinée à la configuration dans les paramètres des applications.
Vous pouvez stocker des fichiers personnalisés nécessaires dans les pods Orchestrator, tels que des assemblages ou d'autres fichiers de stockage, dans le magasin d'objets Ceph intégré. Les fichiers de stockage sont stockés dans un compartiment pour chaque locataire. Les plugins sont stockés dans le compartiment uipath sous orchestrator/plugins/nlog ou orchestrator/plugins/securestore.

Vous pouvez ajouter une configuration personnalisée comme suit :

  • en modifiant les paramètres de l'application dans ArgoCD (paramètres prioritaires) ;
  • en modifiant les fichiers dans Kubernetes ConfigMap orchestrator-customconfig à partir de l'espace de noms uipath.

Préparation de web.config

La plupart des paramètres web.config n'ont pas d'équivalent ou sont implémentés dans Automation Suite à l'aide d'autres mécanismes.

Les options que vous devez configurer sont les suivantes :

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

Notez la valeur de ce paramètre pour une utilisation ultérieure. Décidez si vous devez le configurer dans Automation Suite. Sa valeur par défaut est de 300 Mo.

Préparation des paramètres d'application

Vous devrez peut-être migrer les modifications personnalisées apportées dans la section appSettings ou secureAppSettings du fichier de configuration UiPath.Orchestrator.dll.config. Vous pouvez ajouter des appSettings et secureAppSettings personnalisés à la carte de configuration orchestrator-customconfig.
Dans la section appSettings du fichier de configuration UiPath.Orchestrator.dll.config, identifiez tous les paramètres modifiés ou ajoutés. Enregistrez ces paramètres dans un fichier .json, afin qu'ils soient disponibles dans les étapes ultérieures.

Vous pouvez déchiffrer n'importe quelle section de configuration d'application protégée avec l'option de configuration protégée de l'interface en ligne de commande d'Orchestrator. Il vous suffit d'utiliser les paramètres que vous avez modifiés ou ajoutés et qui sont toujours pertinents dans Automation Suite.

Remarque : Vous pouvez créer le fichier appSettings.custom.json comme illustré dans l'exemple suivant :
{
  "ExampleSetting.Enabled": true,
  "ExampleSetting.Type": "BasicExample",
  "ExampleSetting.Count": 3
}{
  "ExampleSetting.Enabled": true,
  "ExampleSetting.Type": "BasicExample",
  "ExampleSetting.Count": 3
}

Préparation du stockage

Décidez de ce dont vous avez besoin pour la migration du stockage et si votre configuration de stockage actuelle reste la même ou si vous préférez plutôt laisser Automation Suite gérer le stockage pour vous. Automation Suite offre la possibilité de stocker les blobs dans Ceph, qui peut être utilisé dans tous les pods Orchestrator. Dans le cas d'une migration, vous devez copier les fichiers existants dans le stockage Blob actuel.

Si vous utilisez un stockage de type FileSystem avec un dossier local, copiez les données du dossier de stockage vers un dossier sur un nœud d'Automation Suite. Ensuite, à l'aide d'un utilitaire tel que rclone , vous pouvez copier les données vers Orchestrator. Si vous utilisez Ceph, aucune autre configuration n'est requise, car il s'agit de l'option par défaut.
Si vous souhaitez utiliser le système de fichiers avec un partage réseau Windows, vous devez configurer le stockage dans l'application ArgoCD Orchestrator. Récupérez les données de connexion au partage réseau Windows depuis votre configuration Orchestrator actuelle à partir de la clé Storage.Location. Étant donné qu'Automation Suite s'exécute sur des machines Linux, vous ne pouvez pas compter sur l'authentification intégrée pour accéder au partage réseau, vous avez donc besoin des informations d'identification d'un compte qui peut y accéder.
Remarque : Actuellement, seuls les partages réseau qui utilisent le protocole SMB sont pris en charge. Les partages réseau qui utilisent NFS ne sont pas pris en charge.
Si vous utilisez des options de stockage à distance telles qu'Azure, AWS ou Minio, assurez-vous d'ajouter les paramètres Storage.Location et Storage.Type au appSettings.custom.json.

Préparation de NLog

Vous pouvez effectuer les personnalisations suivantes sur NLog :

  • modifier les cibles existantes
  • ajouter de nouvelles cibles
  • ajouter des extensions NLog

Passez en revue la section NLog du fichier de configuration et créez la configuration personnalisée NLog. Pour activer le stockage des journaux d'évènements du robot dans Elasticsearch, vous pouvez fournir le nom d'utilisateur, le mot de passe et l'URI en tant que paramètres Automation Suite, et la cible est configurée automatiquement. Pour activer les scénarios personnalisés pour les journaux de robot, vous devez configurer la cible manuellement.

Si des extensions NLog sont nécessaires, créez un dossier contenant toutes les extensions et leurs dépendances.

Remarque : Par exemple, le dossier peut être nommé nlogextensions. Par défaut, Orchestrator charge les extensions suivantes, vous n'avez donc pas besoin de les inclure dans le dossier ou la configuration 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
Créez le fichier nlog.custom.config contenant les sections standards : extensions, cibles et règles.
La section extensions est un tableau d'éléments qui spécifient les assemblys d'extension à l'aide de assemblyFile et le chemin de l'assembly par rapport au dossier nlogextensions.
Orchestrator définit les cibles et les règles NLog qui sont configurées ou partiellement configurées pour les cas d'utilisation courants. Lorsque la personnalisation est nécessaire pour ces cibles, il vous suffit d'inclure les propriétés modifiées dans la configuration NLog. Vous ne pouvez pas supprimer les propriétés existantes de la configuration prédéfinie ; vous pouvez cependant les modifier. Dans le pod Orchestrator, les cibles incluses par défaut sont définies à l'emplacement /opt/app-root/app/nlog.config.json.
Remarque : Exemple : le fichier nlog.custom.config qui écrit des journaux dans 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
      }
    }
  }
}
Remarque : Le dossier d'extensions nlogextensions est copié dans le magasin d'objets à l'emplacement connu des plugins. L'outil Orchestrator Configurator peut le faire automatiquement tout en mettant à jour la configuration NLog. Le script modifie automatiquement nlog.custom.config pour ajouter le préfixe /var/orchestrator/plugins/nlog/ à chaque assemblyFile du tableau d'extensions s'il n'est pas déjà préfixé.

Préparation des magasins d'informations d'identification

Vous pouvez migrer des plug-ins personnalisés pour les magasins d'informations d'identification vers Automation Suite. Pour ce faire, mettez à jour la configuration dans la carte de configuration et copiez les assemblages de plug-ins dans le compartiment de magasin d'objets correspondant.

Remarque :
  • Les plugins doivent fonctionner sous Linux.
  • Les plugins ne doivent écrire sur aucun stockage, à l'exception de /tmp.

Les plug-ins de magasins d'informations d'identification suivants sont automatiquement déployés sur Orchestrator dans Automation Suite :

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

Remarque : Automation Suite ne prend pas en charge CyberArk AIM, vous ne pouvez donc pas le migrer. Nous vous recommandons de migrer vers le magasin d'informations d'identification CyberArkCCP.
Si vous utilisez d'autres plug-ins Credential Stores, copiez-les dans un dossier, tel que securestoreplugins.
Ajoutez les paramètres du magasin d'identifiants dans le fichier appSettings.custom.json comme suit :
  • pour désactiver les plugins par défaut, ajoutez la configuration Plugins.SecureStores.Default avec une valeur de string vide dans appSettings.custom.json ;
  • ajoutez tous les plugins personnalisés au paramètre Plugins.SecureStores séparés par un ; dans appSettings.custom.json ;
  • ajoutez les paramètres de plug-in personnalisés comme suit : Plugins.SecureStores.<<FriendlyName>>.<<SettingName>>.
Remarque :
Le dossier de plug-in securestoreplugins est copié dans le magasin d'objets à l'emplacement bien connu des plug-ins.
Les assemblies dans Plugins.SecureStores sont chargés à partir de ce dossier.
Les assemblies de Plugins.SecureStore.Default sont chargés à partir du dossier plugins dans le dossier de l'application Orchestrator.

Préparation de la clé de chiffrement

Par défaut, lors de l'installation, Orchestrator génère une clé de chiffrement à utiliser pour les informations sensibles de la base de données. Vous devez migrer cette clé si vous souhaitez réutiliser une base de données sur un nouveau déploiement Orchestrator.

Pour récupérer la clé de chiffrement, procédez comme suit :

  1. Déchiffrez la section secureAppSettings du fichier UiPath.Orchestrator.dll.config, si nécessaire. Pour plus de détails, consultez les sections Chiffrement de UiPath.Orchestrator.dll.config
  2. Récupérez la clé de chiffrement à partir de UiPath.Orchestrator.dll.config. Pour plus de détails, consultez la section CléChiffrement (EncryptionKey).

Préparation de la clé de chiffrement par locataire

Le certificat de clé de chiffrement est installé dans le magasin de certificats Windows. Vous devez fournir le certificat dans l'environnement Automation Suite afin qu'il soit disponible pour les pods Orchestrator.

Les paramètres CertificatesStoreLocation et Azure.KeyVault.CertificateThumbprint ne sont plus requis dans Automation Suite, mais vous pouvez utiliser le CertificatePassword si nécessaire.

Procédez comme suit :

  1. Passez en revue les paramètres d'application et obtenez les paramètres AzureKeyVault.*.
  2. Stockez les Azure.KeyVault.VaultAddress, Azure.KeyVault.ClientId et Azure.KeyVault.DirectoryId pour une utilisation ultérieure.
  3. Récupérez le certificat et, si nécessaire, le mot de passe du certificat.

Cette page vous a-t-elle été utile ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Uipath Logo White
Confiance et sécurité
© 2005-2024 UiPath Tous droits réservés.