Alteryx Server Discussions

Find answers, ask questions, and share expertise about Alteryx Server.
SOLVED

New node on Different VM

iwilliams
8 - Asteroid

Hello Alteryx Community,

 

We have Alteryx server set up on a virtual machine which has some physical assets needed for workflow dependencies (python, drivers/connections, controllers, etc.). We recently set up an additional node on a fresh vm. When running workflows on the new node, we ran into errors because of the missing dependencies that are located on the first vm.

 

As we continue to scale, this area is where we’d appreciate some tips, advice, and best practices that you’ve used. Is it possible for the second vm to access the resources on the first vm? If not, what is the best way to maintain resources from machine to machine?

7 REPLIES 7
fmvizcaino
17 - Castor
17 - Castor

Hey @iwilliams ,

 

All your worker nodes must have all the drivers, custom python packages and everything else installed. 

 

A few things you can do to make this process a little easier:

  1. Use the registry to `copy and paste` the ODBC drivers from one machine to another: https://community.progress.com/s/article/6951
  2. Use a shared folder for the Alteryx Macros
  3. Custom R and Python packages must be installed on all machines, also after an Alteryx version upgrade
    1. Keep track of all the installed packages and develop a workflow to batch-install all packages at once

 

Best regards,

Fernando Vizcaino

iwilliams
8 - Asteroid

@fmvizcaino Thank you Fernando for this advice

apathetichell
18 - Pollux

@fmvizcaino - have you tried writing out the .reg files that you need in workflow using output data and then writing out a .bat file to call regimport?

fmvizcaino
17 - Castor
17 - Castor

Hey @apathetichell ,

 

I have no idea what you are talking about. 😁 It looks too advanced to me. Could you please elaborate?

iwilliams
8 - Asteroid

@apathetichell I am interested in hearing more as well

apathetichell
18 - Pollux

ODBC configs are stored in registry in various locations. They are simple .reg entries - for example something like:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SnowflakeDSIIDriver]
"Setup"="C:\\Program Files\\Snowflake ODBC Driver\\Bin\\SnowflakeDSII.dll"
"Driver"="C:\\Program Files\\Snowflake ODBC Driver\\Bin\\SnowflakeDSII.dll"
"Description"="Snowflake DSII"

 

may comprise the file SnowflakeDSIIDriver.reg

 

you can create a workflow to write text to match the keys you would expect (or use cli to download them from an S3 bucket/whatever)  and then write a second .bat file and run it to set up your registry.

 

your second .bat file would write something like:

curl -k -L -s https://sfc-repo.snowflakecomputing.com/odbc/win64/2.25.11/snowflake64_odbc-2.25.11.msi > snowflake64_odbc-2.25.11.msi
snowflake64_odbc-2.25.11.msi
reg import "Dev-Keys.reg"
reg import "ODBC Drivers.reg"
reg import "SnowflakeDSIIDriver.reg"
reg import "odbc-data-sources.reg"

 

in this case Dev-Keys would contain the keys you are using for your ODBC 64 set up - and include a line like:

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\Snowflake_Dev]

 

These are all plain text and regimport standardizes the ODBC configs cross environment. the above sample also includes a CURL command to download the driver directly too.