SaltStack Use Cases

There are constantly conversations going on about SaltStack, many of which are interesting to say the least. But something I'm simply not understanding are what use cases everyone is using saltstack for?

As Scott explained it to me in PM the other day is that it's Godmode or Universal GPO (that actually works).

Does this mean I can use it to manage all of my client systems, Mac, Windows and Linux? Does it support upgrading software, installing new software, wiping systems etc?

I know these are some basic questions, but the true underlying question I have is what use cases, are you all using SaltStack for?

I'm using it for standing up new Apache / PHP or Nginx / PHP instances. Installing ZeroTier / joining machines to the ZT network.

Haven't had time to mess with it much more than that.

So the only issue I see that is holding me back from using saltstack is that it seems to be more for deploying servers and systems.

I don't often have a ton of systems to deploy at once, or on a regular basis.

What I feel like would be useful would be PDQ Deploy / GPO - Godmode all in one solution. But every time someone explains their use of SaltStack I immediately think to my self that it is not what I need.

So you can use Salt (or Chef, or Ansible, or Puppet) for anything. But where it shines is in defining your systems (servers, desktops, routers, switches, etc.) It's the tool for doing everything you do for management.... installing apps, configuring apps, configuring system settings, remote access, pulling information, etc.

So the only issue I see that is holding me back from using saltstack is that it seems to be more for deploying servers and systems.

That's the issue. It seems.

How does something seeming to be for a specific use case an issue? I'm asking where might I find use out of saltstack. . .

Well the biggest challenge there is knowing what you do. And I mean that honestly, like... I know you and I know what you did a month ago. But you are in a new job and I actually don't know what your day to day workload looks like yet. So where Salt would make sense to you is hard for me to describe.

What I feel like would be useful would be PDQ Deploy / GPO - Godmode all in one solution. But every time someone explains their use of SaltStack I immediately think to my self that it is not what I need.

So I use it for every time that I need to deploy a new module or piece of software. Someone needs something, just stick it in the salt file. I do this constantly. I'm on my laptop and I have the state files locally. They are in a directory that opens all at once in Atom (my editor of choice.) All I do is add that software item to the right state file and save... done.

I have it set to upload the state files to GitLab, which is free, and my Salt Master pulls updates from GitLab every fifteen minutes or so. So my laptop changes flow straight to the servers, automatically.

What I feel like would be useful would be PDQ Deploy / GPO - Godmode all in one solution. But every time someone explains their use of SaltStack I immediately think to my self that it is not what I need.

So I use it for every time that I need to deploy a new module or piece of software. Someone needs something, just stick it in the salt file. I do this constantly. I'm on my laptop and I have the state files locally. They are in a directory that opens all at once in Atom (my editor of choice.) All I do is add that software item to the right state file and save... done.

I have it set to upload the state files to GitLab, which is free, and my Salt Master pulls updates from GitLab every fifteen minutes or so. So my laptop changes flow straight to the servers, automatically.

What I feel like would be useful would be PDQ Deploy / GPO - Godmode all in one solution. But every time someone explains their use of SaltStack I immediately think to my self that it is not what I need.

So I use it for every time that I need to deploy a new module or piece of software. Someone needs something, just stick it in the salt file. I do this constantly. I'm on my laptop and I have the state files locally. They are in a directory that opens all at once in Atom (my editor of choice.) All I do is add that software item to the right state file and save... done.

I have it set to upload the state files to GitLab, which is free, and my Salt Master pulls updates from GitLab every fifteen minutes or so. So my laptop changes flow straight to the servers, automatically.

So this could also be useful for copying files to many servers at once from the central master I assume. For example, all minions need to have copies of source files that are updated from a central point. This could be used to push updates to all minions at once. Correct?

What I feel like would be useful would be PDQ Deploy / GPO - Godmode all in one solution. But every time someone explains their use of SaltStack I immediately think to my self that it is not what I need.

So I use it for every time that I need to deploy a new module or piece of software. Someone needs something, just stick it in the salt file. I do this constantly. I'm on my laptop and I have the state files locally. They are in a directory that opens all at once in Atom (my editor of choice.) All I do is add that software item to the right state file and save... done.

I have it set to upload the state files to GitLab, which is free, and my Salt Master pulls updates from GitLab every fifteen minutes or so. So my laptop changes flow straight to the servers, automatically.

Also does it really work in Windows environments like it does on Linux, it seems like SaltStack and its brothers (Chef, Ansible, I forgot one) are tailored for Linux, and I dont want the master/server to be on Windows, that will be redundant I mean passing commands to Windows agents, and is their template library with commands where we can see what we can do under Windows.

Will be monitoring this thread like:
Also does it really work in Windows environments like it does on Linux, it seems like SaltStack and its brothers (Chef, Ansible, I forgot one) are tailored for Linux, and I dont want the master/server to be on Windows, that will be redundant I mean passing commands to Windows agents, and is their template library with commands where we can see what we can do under Windows.

They do work for windows, the don't have all the modules for Windows yet but they have a pretty good selection.

So I can't answer for Salt since I don't use it, but I use Ansible for everything. For example, I have a separate DHCP and DNS server. Records are held in a YAML dictionary and when I need to add a machine, I add the DNS info and mac address and Ansible sets up the DHCP reservation on one machine and the DNS record in the other.

I also use it for kickstart configs. Instead of Foreman or Cobbler, Ansible has a Jinja2 kickstart template. When I run the playbook, Ansible creates all of the kickstart configs for all of the machines in the same dictionary as above and then creates PXE boot files based on the MAC address for each machine.

Ansible is pretty awesome with cloud services also. Dynamic inventories means you don't need to keep track of static inventories for your playbooks. Ansible can use any kind of script to get an inventory from AWS, DO, OpenStack, etc. As long as it returns JSON, your inventory is now the actual machines in your provider.

Also does it really work in Windows environments like it does on Linux, it seems like SaltStack and its brothers (Chef, Ansible, I forgot one) are tailored for Linux, and I dont want the master/server to be on Windows, that will be redundant I mean passing commands to Windows agents, and is their template library with commands where we can see what we can do under Windows.