All Blog Posts for SaltStack

  • SaltStack - Configuration Management and Remote Execution

    SaltStack - Configuration Management and Remote Execution

    What is the purpose of a tool like SaltStack and a better question, what problem does it solve ?The two main purposes of SaltStack are configuration management and remote execution. You have probably heard or used one of the more popular alternatives of SaltStack - Ansible, Puppet, or Chef. All of them pretty much accomplish the same goal. I like Salt in particular because it is written in Python and it is relatively lightweight. It uses ZeroMQ's communication layer which makes it really fast and it also uses the PyYAML for its configuration management recipes (called states). In a nutshell if you manage any number of servers and you need to do something on them, you would have to log in to each one at a time and do your task. Even if that task is a small one like restarting an instance or checking their uptime, or a larger one like doing an installation and configuration of something, you would still have to do it one server at a time. If you manage a lot of servers you will need to do a lot of manual work to accomplish your tasks. This is where Salt Stack can be applied to automate your work and provide the ability to remotely execute commands on any number of machines. Salt works using either Master/Minion setup where you have a master node from which you execute commands to the minion nodes, or using salt-ssh which is pretty much what it sounds like, it allows you to execute anything that you normally would to a configured minion on any machine over ssh, no matter if Salt is installed there.