Orchestration Frameworks and Node Red?

Some time ago, using Ansible for Node Red deployment and maybe other ways it could be integrated, was discussed. However, Ansible for some tasks is difficult to use, and IMHO Ansible has a rather steep learning curve for many.

Recently I got the chance to look at some of the apparently popular alternatives to Ansible. One that I plan to evaluate now, is Salt Stack. So the question is has any one in this forum used Salt Stack in some capacity?

I am looking for or at the following:

  1. How to monitor Salt Stack tasks with NR
  2. How Salt Stack might be leveraged to deploy and maintain NR, Node, NPM
  3. How Salt Stack might be used to maintain the local NPM configuration
  4. Flows deployment, archival, etc.
  5. Flows configuration deployment

In reference to 5., for example, I hate having to open configuration nodes to enter credentials information. Some nodes do not use or support the 'secret' methodology consistently.

Of course, if anyone has experience with Chef, Puppet, etc., chime in as well, would be happy to hear the good, bad and if applicable, the ugly of the various Ansible like solutions.

Never heard of Salt Stack.

Of all of the others, I found Ansible to be the easiest myself. But then I've never really looked that hard and I am very far from being an expert on the matter.

I think you really need to be deploying lots of instances to make any of these tools worth while. Personally, I only have 4 instances of Node-RED normally, 3 on Linux and 1 on Windows. Maybe a few temporary/test ones.

To minimise setup and configuration, I use my own alternate installer which does the basics for you. However, it installs Node-RED locally rather than globally and puts the userDir folder inside the main Node-RED folder. That way you can have as many different instances as you like on the same device, back up or move the whole thing as it is all in a single folder ...

Suits me, may not suit you.

Yeah, I have about 20 devices. So using anything is a bit of over kill. I have used Ansible before and I got some time with SaltStack given my history with VMware solutions. I have flow that makes sure the SaltStack 'minion' is deployed and its key is accepted by the SaltStack master. This is a bit like what you do with Ansible, setting up a public key to drive communication under Ansible, to allow remote administration control of the Linux OS CLI, script templates, etc.

As I say, each to their own :slight_smile:

I had a quick look at SaltStack but it also seems to want Vagrant as well so I stopped reading at that point as it was never going to be viable for my use.

Typically, I use a combination of written notes containing specific commands (I use MSFT OneNote) and shell scripts where some automation is warranted. But even shell scripts I find that I rarely use a second time (the exception being my Node-RED alternate installer) simply because things change sufficiently between installations that a later installation needs significant change anyway.

For "simple" orchestration I have used both dsh and pssh (distributed shell and parallel shell) that can just farm out ssh commands to a fleet of devices. Not exactly fancy but lightweight.


Deliberate self harm ( DSH )

Not seen those before Dave, thanks for sharing, will take a look. Could be useful.

Yeah, I may, at the end, end up using something like pssh or even just shell scripting. Call it my curious nature to try something else first. :slight_smile: I mean, I was happy with all my python scripting... before I tried NR... and we ALL know how that turned out... my NR ideas, and questions, seem endless! LOL

1 Like

After playing around with Ansible and SaltStack, decided as 'cool' as using either would be, had a working, bash script solution, that just needed a bit of work to update. So I am using a table driven bash shell script that is invoked via a one time systemd service unit file, that finds my repo server, downloads the latest configuration table and script, and then executes same on each raspberry pi on each reboot. The script logic is smart enough to only run new items as applicable, can survive reboots, since it remembers its state, etc. So every time I want or reboot various Pi devices, I get updates applied. Adding the various modules and NR install/update logic was straight forward. A minor suggested enhancement to the standard install/update script for NR, to have would be a 'true' quiet mode or silent mode for install/update... for example "--confirm-silent", but easy to deal with regardless.

1 Like

Might be worth pushing that up to GitHub and sharing the project? I think others may well benefit.

1 Like

That is definitely an idea considering.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.