Saltstack: The open source road to Event Driven Infrastructure.

Serakhi Amine
2 min readNov 16, 2019

--

This is a first of many stories to tell and describe my own experience with Saltstack, I feel that we lack simple and clear documentation of Saltstack technology; tht is why in this story, i will try to interduce the different modules of Saltstack.

What is Saltstack?

Designed around the concept of IT infrastructure run by events, SaltStack is a complex composition of several complementary modules, including:

  • salt: Execution modules of administrative tasks!
  • salt-mine: the information shared between masters and minions.
  • salt-states: Continuous Configuration Management Module.
  • salt-cloud: Cloud Agnostic module in charge of the standardization of requests for supply and release of infrastructure servers.
  • salt-orchestration: Orchestration module of dependent mechanisms.
  • salt-reactor: Event reaction module.
  • salt-API: REST API for interfacing with the ecosystem.

Saltstack is a python based solution. From an architectural overview, we identify two implementation of the stack :

  • One Master (or Masters) and Minions (Linux and Windows).
  • Minions only (Linux and Windows), called masterless architecture.

The role of the master is to initiate requests in the Event Bus shared with the minions; A minion listens to all events in the Bus, and executes the instructions that are linked to it.

The following image illustrates how we can implement saltstack for a production environment :

Saltstack architecture example

In this diagram above we have some examples of usage of different saltstack modules:

  • Commands 1 & 2 are issued within salt executor module, we can target specific minions to execute specific tasks.
  • All minions share its informations with each other through salt mine.
  • Salt-cloud allows to create infrastructure defined as a code in a file called a map (YAML Format).
  • Salt Reactor and orchestrator Listens and Reacts to events with predifined tasks definded in a SLS File (YAML Format).
  • Salt state: send a series of tasks as an SLS file (Yaml Format) that concerned minions will be executing.
  • Salt-API interacts with other tools.

As stated earlier this is an introduction, so please keep in mind that i will be publishing more detailed posts of each use case;

In the Next post, i will be explaining how to install saltstack and what caracterize Salt Minion and Salt Master.

Thank you for reading, dont forget to follow and recommand if you enjoyed the article.

--

--