You are leaving our main website to go to our chinese website hosted in China. For legal reasons there will not be any links pointing back to the main website.

Go to chinese website
Logo - Keyrus
Logo - Keyrus
  • Playbook
  • Services
  • Insights
  • Partners
  • Careers
  • About us
    Company purpose
    Innovation & Technologies
    Committed Keyrus
    Regulatory compliance
    Investors
    Management team
    Brands
    Locations

Blog post

Automated Alteryx installation

By Dan Afonso

For robust and reproducible cloud deployments, it’s important to have a system to automatically provision and configure the software running on the instances you are deploying. In this article, we discuss deploying Alteryx in an automated fashion. 

The defining factor of using public cloud resources is the flexibility of deployment. We eliminate constraints of available hardware, procurement cycles, and having to provide resources for the worst-case scenarios by adding “more” as it fits our tech and budget needs. 

This is the promise of the cloud, but reality deems that this is not as simple as a nebulous “make it bigger” command typed into a console. No, bringing resources into and out of existence as needed should be one of the primary processes in cloud deployments. 

A key part of this is automating software installation. Alteryx doesn’t have many resources on how to automate installation, although it does have the capability. The process itself is fairly straightforward:

  1. Download the application

  2. Perform a silent installation

  3. License the software

  4. Add custom settings

  5. Start the software

Because of how Alteryx handles licensing, the following requirements exist to perform the install automatically:

  • You must have downloaded the installer to a reachable location like S3 or another location on the network. 

  • You must either have the Internet available to get licensed or have a local licensing server capable of authorizing the installation. 

In our examples, the installation script will do everything except download the Alteryx installer.

Instance Installation

Begin by provisioning a Windows instance that meets the usual Alteryx installation requirements. AWS has its best practices noted in its own article. This instance should be either with a user-data that complies with the needs of Ubuntu’s cloud-init format, or preferably, using an IaC tool like Terraform, or CloudFormation to encapsulate the installation. 

I would recommend the instance have a data drive of at least 100GB to install Alteryx. All the examples here move Alteryx to D:\.

Add the Install Script

Once your user data is set up to your likings, we add two files to drop into a temporary directory. This first is the settings. It’s the general setup for Alteryx. This is a minimal installation. Other additions would be adding info for it to authenticate against AD or to use an external MongoDB installation.

<?xml version="1.0" encoding="UTF-8"?>

<SystemSettings>

   <Authentication>

       <ServiceProviderEntityID>http://localhost/aas</ServiceProviderEntityID>

   </Authentication>

   <Controller>

       <EmbeddedMongoDBEnabled>True</EmbeddedMongoDBEnabled>

       <EmbeddedMongoDBRootPath>D:\Alteryx\Service\Persistence\MongoDB</EmbeddedMongoDBRootPath>

       <GalleryEnabled>True</GalleryEnabled>

       <LoggingEnabled>True</LoggingEnabled>

       <LoggingPath>D:\Alteryx\Service\AlteryxServiceLog.log</LoggingPath>

       <LoggingSeverityThreshold>7</LoggingSeverityThreshold>

       <SQLitePath>D:\Alteryx\Service\Persistence</SQLitePath>

       <WebInterfaceEnabled>True</WebInterfaceEnabled>

       <WebInterfaceStagingPath>D:\Alteryx\Service\Staging</WebInterfaceStagingPath>

   </Controller>

   <Engine>

       <DefaultTempFilePath>D:\Alteryx\Engine</DefaultTempFilePath>

       <LogFilePath>D:\Alteryx\Logs</LogFilePath>

       <NumThreads>3</NumThreads>

       <PackageStagingPath>D:\Alteryx\Engine\Staging</PackageStagingPath>

       <RunAtLowerPriority>True</RunAtLowerPriority>

       <SortJoinMemory>2027</SortJoinMemory>

   </Engine>

   <Environment>

       <Configured>True</Configured>

       <SetupType>Gallery</SetupType>

       <WorkingPath>D:\Alteryx</WorkingPath>

   </Environment>

   <Gallery>

       <BaseAddress>http://localhost/gallery</BaseAddress>

       <DefaultGalleryAdminUserName>noreply@keyrus.us</DefaultGalleryAdminUserName>

       <LoggingPath>D:\Alteryx\Gallery\Logs</LoggingPath>

       <SmtpEnabled>False</SmtpEnabled>

       <WorkingPath>D:\Alteryx\Gallery</WorkingPath>

   </Gallery>

   <Worker>

       <StagingPath>D:\Alteryx\Service\Staging</StagingPath>

   </Worker>

</SystemSettings>

<?xml version="1.0" encoding="UTF-8"?><SystemSettings> <Authentication> <ServiceProviderEntityID>http://localhost/aas</ServiceProviderEntityID> </Authentication> <Controller> <EmbeddedMongoDBEnabled>True</EmbeddedMongoDBEnabled> <EmbeddedMongoDBRootPath>D:\Alteryx\Service\Persistence\MongoDB</EmbeddedMongoDBRootPath> <GalleryEnabled>True</GalleryEnabled> <LoggingEnabled>True</LoggingEnabled> <LoggingPath>D:\Alteryx\Service\AlteryxServiceLog.log</LoggingPath> <LoggingSeverityThreshold>7</LoggingSeverityThreshold> <SQLitePath>D:\Alteryx\Service\Persistence</SQLitePath> <WebInterfaceEnabled>True</WebInterfaceEnabled> <WebInterfaceStagingPath>D:\Alteryx\Service\Staging</WebInterfaceStagingPath> </Controller> <Engine> <DefaultTempFilePath>D:\Alteryx\Engine</DefaultTempFilePath> <LogFilePath>D:\Alteryx\Logs</LogFilePath> <NumThreads>3</NumThreads> <PackageStagingPath>D:\Alteryx\Engine\Staging</PackageStagingPath> <RunAtLowerPriority>True</RunAtLowerPriority> <SortJoinMemory>2027</SortJoinMemory> </Engine> <Environment> <Configured>True</Configured> <SetupType>Gallery</SetupType> <WorkingPath>D:\Alteryx</WorkingPath> </Environment> <Gallery> <BaseAddress>http://localhost/gallery</BaseAddress> <DefaultGalleryAdminUserName>noreply@keyrus.us</DefaultGalleryAdminUserName> <LoggingPath>D:\Alteryx\Gallery\Logs</LoggingPath> <SmtpEnabled>False</SmtpEnabled> <WorkingPath>D:\Alteryx\Gallery</WorkingPath> </Gallery> <Worker> <StagingPath>D:\Alteryx\Service\Staging</StagingPath> </Worker></SystemSettings>

This next file is the actual installation script.

# Edit these to fit your environment. Probably best to pull from # your config management system $InstallFile = ".\AlteryxServerInstallx64_2021.2.1.35394.exe" $TargetFolder = "D:\Alteryx" $AlteryxKey = "xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx" $AlteryxEmail = "dan.afonso+alteryx@keyrus.us" # We'll do our own error handling $ErrorActionPreference = "Stop" # Install alteryx to the shared folder try { $TargetPrefix = Split-Path -Path $TargetFolder $TargetSuffix = Split-Path -Path $TargetFolder -Leaf Write-Host "Testing that destination folder can be created: $TargetFolder" New-Item -Path $TargetPrefix -Name $TargetSuffix -ItemType "directory" } catch { write-host "Target installation folder unavailable: $_" Break } # Copy Baseline settings file try { Write-Host "Copying baseline settings file to $TargetFolder" Copy-Item -Path ".\RuntimeSettings.baseline.xml" -Destination $TargetFolder } catch { write-host "Copy of settings file failed: $_" Break } if (-not(Test-Path -Path $InstallFile -PathType Leaf)) { write-host "Installer not available. Terminating." Break } # Do the install of Alteryx, and handle logging try{ $TargetDirArg=-join('TARGETDIR="',$TargetFolder,'"') $LogFile = -join($TargetFolder,"\alteryx_install.log") $LogFileArg = -join('/l="',$LogFile,'"') if (Test-Path -Path "$LogFile.9" -PathType Leaf) { Remove-Item -Path "$LogFile.9" } foreach ($i in 8..0){ # remove backup files and increment old ones if (Test-Path -Path "$LogFile.$i" -PathType Leaf) { $NewSuffix = $1 + 1 Rename-Item -Path "$LogFile.$i" -NewName "$LogFile.$NewSuffix" } } if (Test-Path -Path "$LogFile" -PathType Leaf) { Rename-Item -Path "$LogFile" -NewName "$LogFile.0" } Write-Host "Running: $InstallFile /s $TargetDirArg $LogFileArg" Start-Process $InstallFile -Wait -ArgumentList "/s",$TargetDirArg,$LogFileArg $UninstallCount = Get-ItemProperty -Path "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" | Where-Object { $_.DisplayName -match "Alteryx" }| Measure-Object | ForEach-Object{ $_.count} if($UninstallCount -eq 0){ Throw "Cannot find uninstall info for Alteryx" } } catch { Write-Host "Installation failed: $_" Break } # License the software Start-Process "$TargetFolder\bin\AlteryxActivateLicenseKeyCmd.exe" -Wait -ArgumentList $AlteryxKey,$AlteryxEmail if ($?){ # This is pointless, as the license command always returns success, but maybe someday Start-Process "$TargetFolder\bin\AlteryxService.exe" -Wait -ArgumentList "settingfile=D:\Alteryx\RuntimeSettings.baseline.xml" } else { Write-Host "Installation failed: Licensing failure" } Start-Process "$TargetFolder\bin\AlteryxService.exe" -Wait -ArgumentList start

Performing the installation

In your cloud-init file, your `runcmd` section would then be a Powershell script that performed the following actions:

  • Download the Alteryx Installer to the temp folder you put the rest of the files in

  • Change to the temporary installation folder

  • Run the powershell script with `powershell “.\AlteryxInstall.ps1”`

Further changes

It is likely that you will need to make changes to what I have presented in this tutorial. The simplest way to implement those changes is to:

  1. Copy the RuntimeSettings.xml file to make a backup

  2. Make the changes manually

  3. Get a `diff` from the backup and the sitting RuntimeSettings.xml file

  4. Add the changes to your RuntimeSettings.template.xml

whatsapptwitter
linkedinfacebookworkplace
newsletter.svg

Never miss an insight

Stay updated on the latest articles, events, and more

Your email address is only used to send you the Keyrus newsletter and for commercial prospecting purposes. You can use the link in our emails to opt-out at any time. Learn more about the management of your data and your rights.

Continue reading

Press release

Keyrus named amongst Top B2B Companies on Clutch

December 12, 2022

The Keyrus team is excited to announce that we’ve been named one of the top 1000 companies on Clutch’s platform in 2022! This is the second year that Keyrus has been recognized by Clutch as a top company and B2B leader. 

Webinar

PDF Parsing with Alteryx Intelligence Suite

December 1, 2022

In 20 minutes, we’ll teach you how to use Alteryx Intelligence Suite to eliminate common problems and inefficiencies in accessing data from .pdf files. In the past, you’d need to run custom Python and complex parsing logic to get any usable data from a pdf. Now, you can parse PDFs with out-of-the-box features in Alteryx Intelligence Suite.

Webinar

Modern Cloud Analytics in Action: Keyrus and Red Ventures

November 11, 2022

The cloud offers new opportunities to save you time and money, allowing you to shift focus from maintaining growing servers and upgrading infrastructure to making your data work for you and the success of your business. Watch the webinar and Q&A to learn how AWS, Tableau, and Keyrus worked together to help Red Ventures migrate to a powerful cloud BI tool that created new pathways for success and a modern data culture.

Event

Pharma/Biotech GTN Summit 2022

October 27, 2022

Keyrus & Anaplan Sponsor Life Science Gross-to-Net (GTN) Summit

Press release

Keyrus Achieves AWS Data and Analytics Competency Status

October 6, 2022

Keyrus achieved Amazon Web Services (AWS) Data and Analytics Competency. To receive the designation, AWS Partners must possess deep AWS expertise and deliver solutions seamlessly on AWS.

Webinar

Live Webinar: Lessons on workforce capacity planning and optimization from Optum (UnitedHealthcare)

October 19, 2022

Wednesday, November 9th, 2022 @ 12:00PM Central Time (US and Canada)

Webinar

Tableau Embedded Analytics: Optimizing insights from Salesforce data

September 20, 2022

Want to optimize your visual analytics in Salesforce? You need the right tools. Tableau Embedded Analytics can be used to help you build and visualize reports in Salesforce.

Success story

How C&S Wholesale Grocers maximized ROI with an analytics center of excellence

September 7, 2022

C&S Wholesale Grocers worked with Keyrus and Alteryx to implement an analytics center of excellence to help them efficiently and effectively achieve business objectives, maximize return on investment (ROI), and standardize best practices.

Success story

Implementing a cloud security automation tool at a global consulting firm

September 2, 2022

Keyrus partnered with a consulting firm to build an in-house cloud security solution that would automate their verification processes and keep their information safe.

Success story

Leveraging Salesforce to improve operations at Pajama Program

July 25, 2022

Keyrus partnered with Pajama Program, a nonprofit organization, to review their Salesforce architecture and improve overall operations.

Logo - Keyrus
New York City

252 West 37th st., Suite 1400 New York, NY 10018

Phone:+1 646 664 4872

LinkedInInstagram
PlaybookServicesInsightsPartnersCareersAbout us
Company purposeInnovation & TechnologiesCommitted KeyrusRegulatory complianceInvestorsManagement teamBrandsLocations
Legal notice & Terms of use
Privacy policy
Data protection