Installing the orchestrator MSI silently on a Windows Server
This subtopic covers how to deploy the orchestrator MSI silently using PowerShell, or an alternative deployment tool of your choice. To do this, you will need to:
- Create and configure a production enviroment in the Maverics Cloud platform
- Use one of the templates below to create a PowerShell configuration script
- Deploy the PowerShell script, the orchestrator MSI, and any additional configuration artifacts (Maverics environment public key, configuration bundle if using) onto the Windows machine(s)
- Run PowerShell script and silently install the orchestrator MSI on the Windows machine(s)
Maverics Cloud configuration script
If the Windows machine will connect directly to a Maverics cloud environment, use the following PowerShell script as a template and update any configuration values as required:
# Set the configuration values
$RegistryPath = 'HKLM:\SYSTEM\CurrentControlSet\Services\mavericsSvc'
$Name = 'Environment'
$Value = @('MAVERICS_HTTP_ADDRESS=127.0.0.1:8888',
'MAVERICS_POLLING_INTERVAL_SECONDS=30',
'MAVERICS_RELOAD_CONFIG=true',
'MAVERICS_AWS_CONFIG={ "bucketName": "maverics-development", "accessKeyID": "aws-access-key-id", "secretAccessKey": "aws-secret-access-key", "region": "aws-region", "configurationFilePath": "folder1/folder2"}',
'MAVERICS_BUNDLE_PUBLIC_KEY_FILE=C:\config\public_key.pem',
'MAVERICS_CONFIGURATION_TYPE=1',
'MAVERICS_REMOTE_CONFIG_TYPE=AWS')
# Create the relevant registry path if the Orchestrator MSI has not yet been installed
If (-NOT (Test-Path $RegistryPath)) {
New-Item -Path $RegistryPath -Force | Out-Null
}
# Update the Environment
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type MultiString -Force
The above example uses AWS. If you are using a different storage provider, change the value MAVERICS_REMOTE_CONFIG_TYPE
and replace MAVERICS_AWS_CONFIG
as per the specified environment variables here. You can also add additional configuration values as needed, such as MAVERICS_SECRET_PROVIDER
or MAVERICS_TLS_SERVER_WINDOWS_THUMBPRINT
as required.
Local bundle file configuration script
If the Windows machine is going to consume a local cloud configuration bundle that is stored locally on the Windows machine, use the following PowerShell script as a template:
# Set the configuration values
$RegistryPath = 'HKLM:\SYSTEM\CurrentControlSet\Services\mavericsSvc'
$Name = 'Environment'
$Value = @('MAVERICS_CONFIG=C:\config\maverics.tar.gz',
'MAVERICS_HTTP_ADDRESS=127.0.0.1:8888',
'MAVERICS_BUNDLE_PUBLIC_KEY_FILE=C:\config\public_key.pem',
'MAVERICS_CONFIGURATION_TYPE=3')
# Create the relevant registry path if the Orchestrator MSI has not yet been installed
If (-NOT (Test-Path $RegistryPath)) {
New-Item -Path $RegistryPath -Force | Out-Null
}
# Update the Environment
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type MultiString -Force
You can also add additional configuration values as needed, such as MAVERICS_SECRET_PROVIDER
or MAVERICS_TLS_SERVER_WINDOWS_THUMBPRINT
. See orchestrator environment variables for more details.
Configuring and installing the orchestrator MSI
To create the correct Environment registry entry, save and run (as an Administrator) one of the above PowerShell scripts on the machine you wish to deploy to. In this example, we’ve saved it as configure.ps1
.
PS C:\config\> .\configure.ps1
You should see output similar to the below, with your environment values listed:
Environment : {MAVERICS_CONFIG=C:\config\maverics.tar.gz, MAVERICS_HTTP_ADDRESS=127.0.0.1:8888,
MAVERICS_BUNDLE_PUBLIC_KEY_FILE=C:\config\public_key.pem, MAVERICS_CONFIGURATION_TYPE=3}
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mavericsSvc
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
PSChildName : mavericsSvc
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
Next, to silently install the Orchestrator MSI, run the following PowerShell command (as an Administrator):
Start-Process msiexec.exe -Wait -ArgumentList "/I maverics-orchestrator.msi /n /q"
While you can run these in either order, we recommend running the configuration script before the orchestrator MSI installation, as the orchestrator MSI attempts to start the Maverics service after installation and will fail if the script has not been run before it.
Upgrading the orchestrator silently
To upgrade to a later version of the orchestrator, all that’s needed is to deploy the latest version of the orchestrator MSI to the Windows machine and then run the silent installation command again:
Start-Process msiexec.exe -Wait -ArgumentList "/I maverics-orchestrator.msi /n /q"
Uninstalling the orchestrator silently
To uninstall the orchestrator silently, you first need to obtain the installed product GUID. You can do this by running the following PowerShell command:
Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | Where-Object {$_.DisplayName -match “Maverics Orchestrator” } | Select-Object -Property DisplayName, PSChildName
You should see output similar to this:
DisplayName PSChildName
----------- -----------
Maverics Orchestrator {8C93BE33-F2DD-4E17-A279-8C3768A97F1A}
Copy the displayed GUID into the following PowerShell command:
Start-Process msiexec.exe -Wait -ArgumentList "/X {8C93BE33-F2DD-4E17-A279-8C3768A97F1A} /n /q"
This will silently uninstall the orchestrator using the default settings, leaving the maverics.yaml
file in the installation directory and the Environment
registry key intact. These can be manually deleted if desired.