Parameters Descriptions
The following table describes all the parameters that can be used with the Publish-Orchestrator.ps1
.
Important!
Be sure to use the correct
-action
parameter (e.g.Deploy
orUpdate
). Failure to useUpdate
when performing an upgrade results in the loss of your existing configuration.
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. |
-hostAdminPassword | Mandatory only for fresh deployments, when -action is set to Deploy . Specify a custom password for the host administrator. Please note that passwords have to be least 8 characters long, and must have at least one lowercase character and at least one digit. |
-isHostPassOneTime | Optional. Enables you to enforce a password reset on the first login for the host administrator. If this parameter is omitted, the host admin password is not a one-time password. |
-defaultTenantAdminPassword | Mandatory only for fresh deployments, when -action is set to Deploy . Specify a custom password for the default tenant administrator. Please note that passwords have to be least 8 characters long, and must have at least one lowercase character and at least one digit. |
-isDefaultTenantPassOneTime | Optional. Enables you to enforce a password reset on the first login for the default tenant administrator. If this parameter is omitted, the tenant admin password is not a one-time password. |
-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. |
-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. |
-useQuartzClustered | Optional. A switch that indicates that this is a clustered installation. |
-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,passwprd=******,ssl=True" without SSL enabled - -redisConnectionString "docs123.redis.cache.windows.net:6380,passwprd=******,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;" |
-nugetRepositoryType | Mandatory. This parameter specifies where NuGet packages are saved. It can be populated as follows:Composite - Package metadata is saved to the SQL database for faster search and filtering. Execution media and packages are saved to the location specified through the storageType and storageLocation parameters. This is the default value in both update scenarios and clean installations, even if the parameter is not specified.Legacy - Uses FileSystem for package sync. Packages and activities are saved in the locations specified in the NuGet.Packages.Path and NuGet.Activities.Path parameters, respectively. Execution media is saved to the location specified through the storageType and storageLocation parameters. Platform users must enter this value in update scenarios to maintain access to preexisting packages.Note: The NuGet.Activities.Path and NuGet.Packages.Path keys do not appear by default but must be manually added when using Legacy. |
-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" . |
-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. |
-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 web.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 web.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. |
Parameters Persisted on Update
The following web.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
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" `
-hostAdminPassword "12345qwert" `
-defaultTenantAdminPassword "12345qwert" `
-nugetRepositoryType "Composite" `
-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" `
-useQuartzClustered `
-redisConnectionString "docs123.redis.cache.windows.net:6380,passwprd=******,ssl=True" `
-azureSignalRConnectionString "Endpoint=https://doctest.signalr.net;AccessKey=*****;Version=1.0;" `
-robotsElasticSearchUrl "http://docelasticserver:9200" `
-hostAdminPassword "12345qwert" `
-defaultTenantAdminPassword "12345qwert" `
-nugetRepositoryType "Composite" `
-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" `
-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"} `
-verbose
Updated about a year ago