Orchestrator
2022.4
false
Banner background image
Orchestrator Installation Guide
Last updated Mar 4, 2024

Orchestrator Scripts

Publish to Orchestrator

The following table describes all the parameters that can be used with the Publish-Orchestrator.ps1.

Parameter

Description

-action

Mandatory. Indicates the type of scenario you want to start. The following options are available:

  • Deploy - specifies it is a clean installation;
  • Update - specifies you are updating your Orchestrator instance.

-azureAccountApplicationId

Mandatory. The Azure service principal ID. Please note that the used service principal needs to be assigned the Contributor role to the app service at the subscription scope.

-azureAccountPassword

Mandatory. The Azure token password for the service principal ID.

-azureSubscriptionId

Mandatory. The Azure subscription ID for the App Service that hosts Orchestrator.

-azureAccountTenantId

Mandatory. The Azure tenant ID.

-resourceGroupName

Mandatory. The name of the Azure Resource Group that contains the Orchestrator App Service.

-appServiceName

Mandatory. The Orchestrator Azure App Service name.

-package

Mandatory. Indicate the full path of the UiPath.Orchestrator.Web.zip archive.

-activitiesPackagePath

Optional. Specify the full path of the UiPathActivities.zip archive, which is included by default, starting with v2018.4.4, in UiPathOrchestrator.zip. This enables you to install the local activity feed in Azure at install-time. Please note that this parameter can be used only with the Legacy repository type. Otherwise, it has to be manually set up.

-testAutomationFeatureEnabled

Optional. This parameter enables the Test Automation module, for test data queues, test execution and scheduling. You can enable this feature based on one of the following scenarios:

Start fresh with a clean Orchestrator install

Configure the following settings for your App Service before running the Publish-Orchestrator.ps1 script using the -testAutomationFeatureEnabled parameter:
  • AppSettings: Key=TestAutomation.ModuleEnabled - Set to True to enable the Test Automation module.
  • AppSettings: Key=TestAutomation.FeatureEnabledByDefault - Set to True to enable the Test Automation module by default. By default, this feature is disabled unless explicitly enabled.
  • ConnectionString: Name=TestAutomation - Set the Test Automation database connection string. You can either use a connection string similar to the one used for Orchestrator or a different one altogether. For example:

Server=13.13.13.13;Initial Catalog=UiPath;Persist Security Info=False;User ID=dbUser;Password=pass123; MultipleActiveResultSets=False;Encrypt=True; Connection Timeout=30;TrustServerCertificate=True

Make sure to mark these settings as Deployment slot setting , especially, if you are using hotswap slots.

Enable Test Automation post Orchestrator installation

If you already have deployed Orchestrator without enabling the Test Automation module,

run the Publish-Orchestrator.ps1 script with the same parameters as for an upgrade, and add the -testAutomationFeatureEnabled parameter.

Upgrade Orchestrator

If you upgrade your Orchestrator instance, run the Publish-Orchestrator.ps1 script with the same parameters as for an upgrade, and add the -testAutomationFeatureEnabled parameter.

-updateServerFeatureEnabled

Optional. This parameter enables the Update Server module. You can enable this feature in one of the following scenarios:

Start fresh with a clean Orchestrator installation

Configure the following settings for your App Service before running the Publish-Orchestrator.ps1 script using the -updateServerFeatureEnabled parameter:
  • AppSettings: Key=UpdateServer.ModuleEnabled - Set to True to enable the Update Server module.
  • AppSettings: Key=UpdateServer.FeatureEnabledByDefault - Set to True to enable the Update Server module by default. By default, this feature is disabled unless explicitly enabled.
  • ConnectionString: Name=UpdateServer - Set the Update Server database connection string. You can either use a connection string similar to the one used for Orchestrator or a different one altogether. For example:

Server=13.13.13.13;Initial Catalog=UiPath;Persist Security Info=False;User ID=dbUser;Password=pass123; MultipleActiveResultSets=False;Encrypt=True; Connection Timeout=30;TrustServerCertificate=True

Enable Update Server post Orchestrator installation

If you already have deployed Orchestrator without enabling the Update Server module,

run the Publish-Orchestrator.ps1 script with the same parameters as for an upgrade, and add the -updateServerFeatureEnabled parameter.

Upgrade Orchestrator

If you upgrade your Orchestrator instance, run the Publish-Orchestrator.ps1 script with the same parameters as for an upgrade, and add the -updateServerFeatureEnabled parameter.

-robotsElasticSearchUrl

Optional. This should be used only if you want to use Elasticsearch for logging. Provide the Elasticsearch URL as the value, such as "http://elasticserver:9200". If your Orchestrator instance requires authentication, provide the ElasticSearchUsername, ElasticSearchPassword, elasticSearchDiagnosticsUsername, and elasticSearchDiagnosticsPassword parameters.

-robotsElasticSearchTargets

Optional. This parameter enables you to send Robot logs only to the configured Elasticsearch server. Provide the Elasticsearch URL as the value, such as "http://elasticserver:9200". Please note that it can only be used in conjunction with the -robotsElasticSearchUrl parameter. If you do not provide this parameter, Robot logs are sent to both the configured SQL database and Elasticsearch.

-robotsElasticSearchUsername

Optional. This parameter enables you to indicate the username for your Elasticsearch instance if its authentication is enabled.

-robotsElasticSearchPassword

Optional. This parameter enables you to indicate the password for your Elasticsearch instance if its authentication is enabled.

-serverElasticSearchDiagnosticsUsername

Optional. This parameter enables you to indicate the username for your Elasticsearch instance if its authentication is enabled. This parameter together with elasticSearchDiagnosticsPassword "Password" are required for internal Orchestrator logs.

-serverElasticSearchDiagnosticsPassword

Optional. This parameter enables you to indicate the password for your Elasticsearch instance if its authentication is enabled. This parameter together with elasticSearchDiagnosticsUsername "Username" are required for internal Orchestrator logs.

-loadBalancerUseRedis

Optional. Use Redis as a database to distribute messages and cache to and from all the machines connected through your load balancer. If -redisConnectionString is specified, it is automatically set to true, otherwise it is set to false.

-redisConnectionString

Optional. It can only be used if loadBalancerUseRedis is set to true. A connection string that enables you to set up your Redis server, which contains the URL of the server, the password, and port used with Redis. It is also possible to enable SSL encrypted connections between the Orchestrator nodes and the Redis service. For more information, please click here.

Examples:

  • with SSL enabled - -redisConnectionString "docs123.redis.cache.windows.net:6380,password=******,ssl=True"
  • without SSL enabled - -redisConnectionString "docs123.redis.cache.windows.net:6380,password=******,ssl=False"

-azureSignalRConnectionString

Optional. Helps you enable Azure SignalR Service, facilitating a direct communication between your Robot fleet and the SignalR Service - Orchestrator no longer intermediates it. Please note that, if enabled, Robots with a version lower than 2019.2 rely only on the Heartbeat protocol to communicate to Orchestrator, meaning that any command given from Orchestrator is picked up by a Robot only every 30 seconds. Example: -azureSignalRConnectionString "Endpoint=https://doctest.signalr.net;AccessKey=M1ug+sBu07hyyi12AgyJ52SEd4OgC2Mm6BvllVHCC9c=;Version=1.0;"

-storageType

Optional. Defines the target where execution media and packages are to be saved. It can be populated with the following targets:

  • FileSystem - such as storageType "FileSystem". This is the default value in both update scenarios and clean installations, even if the parameter is not specified.
  • Azure - such as storageType "Azure".
  • Amazon - such as storageType "Amazon".
  • Minio - such as storageType "Minio".
If you have overridden the UiPath.Orchestrator.dll.config Storage.Type parameter in the Configuration section of the Azure App Service, when upgrading you need to pass this value as a script parameter to Publish-Orchestrator.ps1.

-storageLocation

Optional. Defines the actual location where execution media and packages are to be saved. Particularities:

  • FileSystem - provide an absolute path in the RootPath=.\Storage format, such as storageLocation "RootPath=C:\FolderName\AnotherFolderName". This is the default value in both update scenarios and clean installations, even if the parameter is not specified.
  • Azure - provide a connection string, such as storageLocation "DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net".
  • Amazon - provide a connection string, such as storageLocation" "EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false".
  • Minio - provide a connection string, such as storageLocation" "host=localhost:9001;accessKey=YVKYFJ0ZY246KDKP0634;secretKey=bdBEk2ubhIFsTNPuQ80PjKL+oqZBj67HoSWBFnw1".

More information on these deployments types is available here.

If you have overridden the UiPath.Orchestrator.dll.config Storage.Location parameter in the Configuration section of the Azure App Service, when upgrading you need to pass this value as a script parameter to Publish-Orchestrator.ps1.

-standbyslotname

Optional. It can be used only in upgrade scenarios. If specified, the script deploys Orchestrator in the indicated app service slot instead of the Production one. Additionally, a swap slot is performed with the Production slot, with no downtime.

Prerequisites:

  • the standby App Service slot must point to a different SQL database.
  • the standby slot Connection String must be made slot sticky (by selecting the Slot Setting box in Azure Portal).
  • the Production slot UiPath.Orchestrator.dll.config file must be copied to the standby slot from the Production slot.

-productionSlotName

Optional. It can be used only if the Orchestrator App Service deployment slot is different from the default Production App Service Slot set by Azure.

-appSettings

Optional. Key-value pairs of application settings that are pushed to the Azure App Service Configuration section after deployment. Keep in mind that this only applies to settings from the App Settings section of the UiPath.Orchestrator.dll.config file. You can use this parameter to change specific settings that are not exposed through the Publish-Orchestrator.ps1 script. For the rest, please use their dedicated parameter while deploying the script.

Please note that existing settings are merged with new ones.

-stopApplicationBeforePublish

Optional. If present, it stops the application before deployment and it starts it after the deployment is completed.

-unattended

Optional. If present, the deployment continues without any user confirmation.

-bucketsAvailableProviders

Optional. A string containing a comma-separated list of bucket providers you want to enable. If not specified, it defaults to Orchestrator,Amazon,Azure,Minio. You also have the option to enable the FileSystem provider by adding it to that list.
Caution: If you use the FileSystem provider and upgrade to 20.10.7 or later, you must pass in a value that includes FileSystem for this parameter. If you do not, this provider is disabled, and you will no longer be able to use those buckets.

-bucketsFileSystemAllowlist

Mandatory only when FileSystem is selected as a bucket provider. The list of locations you want to allow buckets to be created at for the FileSystem provider. If you enable the FileSystem provider, you must pass in a value for this parameter too. Values are a list of UNC paths, separated by the pipe symbol | (e.g. \\mysharedstorage\mybyckets\|\\myotherserver\myotherbuckets).

-noAzureAuthentication

Optional. Allows you to publish to the Azure App Service by relying on your own user identity, without having to create a service principal. If this parameter is used, the UseServicePrincipal parameter set (which includes items such as the Azure application ID, password, subscription ID, and tenant ID) are no longer necessary.

-OrchestratorRootUrl

Optional. Allows you to include the external URL of the Orchestrator app service in cases where a custom URL is used. If this parameter is not populated, the app service default URL is used instead.

-azureUSGovernmentLoginOptional. This parameter is only used for US Government deployments.

Parameters Persisted on Update

The following UiPath.Orchestrator.dll.config parameter values are automatically migrated and persisted when performing an update. To change them, provide new values when calling the Publish-Orchestrator.ps1 script.
-NuGet.Packages.ApiKey
-NuGet.Activities.ApiKey
-NuGet.Packages.Path
-NuGet.Activities.Path
-machineKey/@decryption
-machineKey/@decryptionKey
-machineKey/@validationKey
-EncryptionKey
-NuGet.Repository.Type
-Storage.Type
-Storage.Location
-LoadBalancer.Redis.ConnectionString
-LoadBalancer.UseRedis
-Scalability.AzureSignalR.ConnectionString
-nlog/targets/target/@name=robotElasticBuffer/@name=RobotElastic/@uri
-nlog/targets/target/@name=robotElasticBuffer/@name=RobotElastic/@username
-nlog/targets/target/@name=robotElasticBuffer/@name=RobotElastic/@password
-nlog/rules/logger/@name=Robot.*/@writeTo
-nlog/targets/target/@name=serverElasticBuffer/@name=serverElastic/@uri
-nlog/targets/target/@name=serverElasticBuffer/@name=serverElastic/@username
-nlog/targets/target/@name=serverElasticBuffer/@name=serverElastic/@password
-nlog/targets/target/@name=serverElasticBuffer/@name=serverElastic/@index
-nlog/rules/logger/@name=*/@writeTo-NuGet.Packages.ApiKey
-NuGet.Activities.ApiKey
-NuGet.Packages.Path
-NuGet.Activities.Path
-machineKey/@decryption
-machineKey/@decryptionKey
-machineKey/@validationKey
-EncryptionKey
-NuGet.Repository.Type
-Storage.Type
-Storage.Location
-LoadBalancer.Redis.ConnectionString
-LoadBalancer.UseRedis
-Scalability.AzureSignalR.ConnectionString
-nlog/targets/target/@name=robotElasticBuffer/@name=RobotElastic/@uri
-nlog/targets/target/@name=robotElasticBuffer/@name=RobotElastic/@username
-nlog/targets/target/@name=robotElasticBuffer/@name=RobotElastic/@password
-nlog/rules/logger/@name=Robot.*/@writeTo
-nlog/targets/target/@name=serverElasticBuffer/@name=serverElastic/@uri
-nlog/targets/target/@name=serverElasticBuffer/@name=serverElastic/@username
-nlog/targets/target/@name=serverElasticBuffer/@name=serverElastic/@password
-nlog/targets/target/@name=serverElasticBuffer/@name=serverElastic/@index
-nlog/rules/logger/@name=*/@writeTo

Examples

Single Node Installation

The following example enables you to perform a clean install of Orchestrator on one node, use Elasticsearch for logging, and save packages in the Azure blob storage and their metadata in the SQL database. The procedure occurs in an -unattended manner and logs its steps at the -verbose level.
.\Publish-Orchestrator.ps1 `
-action "Deploy" `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-testAutomationFeatureEnabled 
-updateServerFeatureEnabled 
-storageType "Azure" `
-storageLocation "DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net" `
-robotsElasticSearchUrl "http://docelasticserver:9200" `
-verbose.\Publish-Orchestrator.ps1 `
-action "Deploy" `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-testAutomationFeatureEnabled 
-updateServerFeatureEnabled 
-storageType "Azure" `
-storageLocation "DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net" `
-robotsElasticSearchUrl "http://docelasticserver:9200" `
-verbose

Multi-node Installation

The following example enables you to perform a clean install of Orchestrator on multiple nodes and use Elasticsearch for logging and Redis for caching and message distribution. Packages are saved in the Azure blob storage and their metadata in the SQL database. The procedure occurs in an -unattended manner and logs its steps at the -verbose level.
.\Publish-Orchestrator.ps1 `
-action "Deploy" `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-redisConnectionString "docs123.redis.cache.windows.net:6380,passwprd=******,ssl=True" `
-azureSignalRConnectionString "Endpoint=https://doctest.signalr.net;AccessKey=*****;Version=1.0;" `
-robotsElasticSearchUrl "http://docelasticserver:9200" `
-storageType "Azure" `
-storageLocation "DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net" `
-verbose.\Publish-Orchestrator.ps1 `
-action "Deploy" `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-redisConnectionString "docs123.redis.cache.windows.net:6380,passwprd=******,ssl=True" `
-azureSignalRConnectionString "Endpoint=https://doctest.signalr.net;AccessKey=*****;Version=1.0;" `
-robotsElasticSearchUrl "http://docelasticserver:9200" `
-storageType "Azure" `
-storageLocation "DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net" `
-verbose

Multi-node Update

The following example enables you to upgrade an existing multi-node Orchestrator to the latest available version, without changing any pre-existing setting. The procedure occurs in an -unattended manner and logs its steps at the -verbose level.
Publish-Orchestrator.ps1 `
-action Update `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-verbosePublish-Orchestrator.ps1 `
-action Update `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-verbose
The following example enables you to upgrade an existing multi-node Orchestrator to the latest available version while changing only the value of the Webhooks.Enabled and Telemetry.Enabled parameters to false. The procedure occurs in an -unattended manner and logs its steps at the -verbose level.
Publish-Orchestrator.ps1 `
-action Update `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-appSettings @{"Webhooks.Enabled"="false"; "Telemetry.Enabled"="false"} `
-verbosePublish-Orchestrator.ps1 `
-action Update `
-unattended `
-package "E:\Work\Orch\Setup\UiPath.Orchestrator.Web.zip" `
-stopApplicationBeforePublish `
-azureSubscriptionId "8e34be72-1937-4aa0-b70e-81bab19gbf0a" `
-azureAccountTenantId "f8350d2a-n153-4d17-8927-902c51f72797" `
-azureAccountApplicationId "$AzureApplicationId" `
-azureAccountPassword "$AzurePassword" `
-resourceGroupName "DocTest-Orch-RG" `
-appServiceName "DocTests123" `
-appSettings @{"Webhooks.Enabled"="false"; "Telemetry.Enabled"="false"} `
-verbose
  • Publish to Orchestrator
  • Parameters Persisted on Update
  • Examples
  • Single Node Installation
  • Multi-node Installation
  • Multi-node Update

Was this page helpful?

Get The Help You Need
Learning RPA - Automation Courses
UiPath Community Forum
Uipath Logo White
Trust and Security
© 2005-2024 UiPath. All rights reserved.