This article will be the start of a multi-part series, covering various aspects of SaltStack.
What is SaltStack?
Saltstack is an Infrastructure and Configuration Management Tool, which focuses on simplicity and speed. This statement might sound like a bold marketing claim at first, but proves itself really quick, as we will see in the following parts.
It is open-source and based on Python and ZeroMQ, features remote execution capabilities and is extremely scalable.
There are two roles:
- Salt Master Server
- Salt Client / Minions
The Master Server stores the Infrastructure Code and initiates the command execution. It is possible to run in masterless mode, so can configure the server itself using the salt capabilities, but this does not make sense for larger installations. In larger infrastructures, the master should be replicated to provide redundancy as well as improved performance.
The Salt Minion will run on every client which should be administered by the salt master. This daemon is responsible for executing the commands it receives from the master, but can also send data back to the master, which could be used as a monitoring solution for example.
The configuration is done, using states, formulas and templates which describe the state, the client should be in, when the configuration is finished. Therefore, the infrastructure becomes self-healing, as the configuration gets checked and corrected on every execution of the states.
Which topics will this series cover?
This series will describe the complete setup of my homelab infrastructure, which I plan to do completely using SaltStack.
- [Part 1]: Installation of the Salt Master
- [Part 2]: Deploying the first managed Server (on Proxmox)
- [Part 3]: Configuration of the Server using SaltStack
- [Part 4]: Using advanced features like Pillars, Reactor, etc.
If you want to learn more about SaltStack, stay tuned for the next parts!
Also check out their sleek website for more information: Official Website