akaizoku / alteryx-deploy Goto Github PK
View Code? Open in Web Editor NEWAlteryx deployment utility
License: MIT License
Alteryx deployment utility
License: MIT License
When no value is specified for the property LicenseEmail
, the installation process will fail with the following error message:
Cannot validate argument on parameter 'Serial'. The argument is null or empty. Provide an argument that is not null or empty, and
then try the command again.
The installation of Alteryx is performed by the function Install-AlteryxServer
which takes the email address of the person installing the software as input parameter (Serial
). This value is not required but cannot be null if specified.
The default behaviour of Install-Alteryx
is to pass to this function the property LicenseEmail
read from the script configuration files. When this value is not specified, it is initialised as a null value and thus generates a parameter validation error.
Install-Alteryx : Cannot validate argument on parameter 'Serial'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At D:\Scripts\alteryx-deploy\Deploy-Alteryx.ps1:247 char:27
+ ... ll" { Install-Alteryx -Properties $Properties -Instal ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Install-Alteryx], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Install-Alteryx
In order to prevent this issue from happening, the property LicenseEmail
must be specified in the custom script configuration file (custom.ini
).
Enable SSL by default with provided certificate, or generate new self-signed certificate.
Add function to perform MongoDB database repair.
Add support for the configuration of the platform using aliases (ANAME) and Canonical Name (CNAME) records.
This should not impact #9.
When no email address is specified and the Unattended
switch is used, if the Active Directory is not accessible, the activation will fail with the following error message:
Unable to contact the server. This may be because this server does not exist, it is currently down, or it does not have the Active Directory Web Services running.
If the configuration property LicenseEmail
is not specified and the script is ran in unattended mode, a query is made to the active directory (Get-ADUser
). If the active directory is not accessible then the script will fail to retrieve the email address and generate an error that will stop the script.
Unable to contact the server. This may be because this server does not exist, it is currently down, or it does not have the Active
Directory Web Services running.
[...]
+ CategoryInfo : ResourceUnavailable: (<UserName>:ADUser) [Get-ADUser], ADServerDownException
+ FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADUser
In order to prevent this issue from happening, the property LicenseEmail should be specified in the custom script configuration file (custom.ini
) or the active directory should be made accessible.
The upgrade process fails if the new installation location differs from the current installation directory.
When upgrading, if the installation location specified does not match the existing installation directory, the script will stop and throw an error message.
Alteryx Service process could not be found
This is due to the fact that the upgrade process starts with a backup which requires a call to the Alteryx Service. This service process is located in the installation directory and thus refers to the provided installation location. Because the new installation directory specified is empty, the service cannot be found.
Upgrading from a previous version to 2021.4 fails.
When upgrading from 2021.3 or an older version to 2021.4, the upgrade script throws an error after the backup of the database while attempting to restart the service.
yyyy-MM-dd hh:mm:ss CHECK Starting Alteryx Server upgrade to 2021.4.1.06380
yyyy-MM-dd hh:mm:ss INFO Retrieving current version
yyyy-MM-dd hh:mm:ss CHECK Start full backup of Alteryx Server
yyyy-MM-dd hh:mm:ss INFO Check Alteryx Service status
yyyy-MM-dd hh:mm:ss INFO Stopping Alteryx Service
yyyy-MM-dd hh:mm:ss CHECK Alteryx Service successfully stopped
yyyy-MM-dd hh:mm:ss INFO Create MongoDB database backup
yyyy-MM-dd hh:mm:ss INFO Backup configuration files
yyyy-MM-dd hh:mm:ss WARN SystemAlias configuration file could not be found
yyyy-MM-dd hh:mm:ss WARN SystemConnections configuration file could not be found
yyyy-MM-dd hh:mm:ss INFO Backup controller token
yyyy-MM-dd hh:mm:ss INFO Compress backup files
yyyy-MM-dd hh:mm:ss INFO Remove staging backup folder
yyyy-MM-dd hh:mm:ss INFO Starting Alteryx Service
yyyy-MM-dd hh:mm:ss ERROR Alteryx Service could not be started
This is due to two factors:
The AlteryxService.exe
utility exit code when starting the Alteryx Service has changed between version 2021.3 and 2021.4.
Version | Success exit code |
---|---|
2021.3 | 2 |
2021.4 | 0 |
The backup triggered during the upgrade references the target version instead of the old one, which fails to pass the version check built to prevent the issue described above.
When restoring a backup on a different machine, the script fails and the following error is thrown when attempting to restore the controller token:
Set server secret failed: Error in CryptImportKey(3): Bad Data. (-2146893819)
When performing a restore on a different machine, the controller token must be reconfigured but this can only be performed if the property <ServerSecretEncrypted>
does not already exists in the platform configuration file (RunTimeSettings.xml
).
If the property is already present in the configuration file, the restore of the controller token value will fail and it subsequently prevents the service from being started as expected.
2021-12-09 22:57:19 INFO Restore controller token
2021-12-09 22:57:20 ERROR Set server secret failed: Error in CryptImportKey(3): Bad Data. (-2146893819)
Set server secret failed.
2021-12-09 22:57:20 ERROR Controller token update failed
2021-12-09 22:57:20 INFO Restore storage key
2021-12-09 22:57:20 INFO Remove staging backup folder
2021-12-09 22:57:32 INFO Alteryx Service is starting...
2021-12-09 22:57:33 INFO Alteryx Service is starting...
2021-12-09 22:57:34 INFO Alteryx Service is starting...
2021-12-09 22:57:35 ERROR Attempt to start the Alteryx Service (AlteryxService) failed
The property <ServerSecretEncrypted>
must be removed from the RunTimeSettings.xml
configuration file (see Server Host Recovery Guide).
Upon restoring a backup on a different machine, the script should automatically update the Gallery URL to the new IP or hostname to ensure that no additional manual step is required.
Users are currently required to update this value before or after the restore in order to successfully restart the Alteryx Service.
The Deploy-Alteryx script defines LicenseKey as a parameter of type System.String[]
alteryx-deploy/Deploy-Alteryx.ps1
Line 113 in 4ef8d93
This property is passed to the Add-AlteryxLicense command in Invoke-ActivateAlteryx script on Action - Activate
But this command from PSAYX version 1.0.1 only accepts a parameter of type System.String
https://github.com/Akaizoku/PSAYX/blob/42963a60acbd85f2020c8dbfcead72aeebfe0682/Public/License/Add-License.ps1#L34
Hence the Action - Activate always fails with the below error
Invoke-ActivateAlteryx : Cannot process argument transformation on parameter 'Key'. Cannot convert value to type System.String.
At C:\alteryx-deploy-main\Deploy-Alteryx.ps1:246 char:27
+ ... ate" { Invoke-ActivateAlteryx -Properties $Properties -Unatte ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Invoke-ActivateAlteryx], ParameterBindingArgumentTransformationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Invoke-ActivateAlteryx
Suggestion to fix - Change the Parameter type in the deploy script for LicenseKey to System.String
Support the new patch update process.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.