Skip to content
This repository has been archived by the owner on Oct 12, 2020. It is now read-only.

02. About SaltStack

Khelil Sator edited this page Nov 17, 2017 · 28 revisions

About SaltStack

Salt is a remote execution tool and configuration management system:

  • remote execution: run commands on various machines in parallel with a flexible targeting system (salt execution modules)
  • configuration management: establishes a client-server model to bring infrastructure components in line with a given policy (salt state modules in sls files, kind of Ansible playbooks)

Salt is an event driven infrastructure tool (like StackStorm).
Linkedin uses Salt, Netflix uses ST2.

From Nitrogen release, Salt has good Junos automation capabilities.

Code: open source (https://github.com/saltstack), written in Python.

Documentation: https://saltstack.com/

SaltStack vs Salt Open vs SaltStack Enterprise

SaltStack is the company.
Salt Open is the open source tool I am using in this repo.
SaltStack Enterprise is the software they sell and support.

Saltstack vs Ansible vs Stackstorm

Salt competes primarily with Puppet, Chef, Ansible, and StackStorm.
Salt is an event driven infrastructure tool (like StackStorm).

Ansible vs Saltstack vs Stackstorm: https://medium.com/@anthonypjshaw/ansible-v-s-salt-saltstack-v-s-stackstorm-3d8f57149368

SaltStack architecture:

Kind of hub and spoke with a master controlling several minions.

  • salt master.
  • salt minions (agents)
  • salt proxies (enables master to control devices without minion).
    Examples include:
    • devices that could run a minion, but for whatver reasons, don't.
    • devices that cannot run a standard salt-minion:
      • proprietary OS
      • IoT
      • devices with limited CPU or memory

SaltStack transport:

ZeroMQ is the current default transport within Salt.
ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is a high-performance asynchronous messaging library, aimed at use in distributed applications.

Master initiated messages:

  • job publish: The Salt master sends job to minions defined by target.

Minion initiated messages:

  • pillar fetch from Master
  • sls fetch from Master
  • files fetch from Master
  • job return to Master

SaltStack presentation:

There is a SaltStack introduction at the root of the repository

SaltStack versions:

Nitrogen has a better network automation support than Carbon.
https://docs.saltstack.com/en/latest/topics/releases/version_numbers.html
code names: https://en.wikipedia.org/wiki/List_of_chemical_elements