SaltStack is configuration management tool in the same category as Chef and Puppet.
SlatStack is built on Python, and has a Python interface so a user can program directly to SaltStack using Python code.
Most of the instructions from SaltStack get sent out in YAML or a DSL.
There are called Salt Forumlas. Formulas can be modified but are designed to work out of the box.
SaltStack uses the concept of systems which are divided into multiple categories. SaltStack has masters and minons.
SaltStack can run remote commands to systems in a parallel fashion which allows for very fast performance.
SaltStack leverages a distributed messaging platform called 0MQ for fast reliable messaging throughout the networking stack.
SaltStack is an event driven technology that has components called reactors and beacons.
A reactor lives on the master and listens for any types of changes in the node or device that differ from the desired state or configuration, such as:
- Command line configuration change
- Disk, Memory, or Processor Utilisation change
- Service status change
Beacons live on minions. If there is a configuration change on the minion, the beacon will alert the reactor. This is known as the remote execution system, it helps determine whether the configuration is in an appropriate state on the minions. These actions are called jobs and executed jobs can be stored in an external database for reuse or review.
SaltStack uses pillars and grains. SaltStack uses grains to gather system information on the minions and report back to the master, gathered by the salt-minion daemon.
Grains provide specific information to the master about the host, such as uptime.
Pillars store information about data that can be retrieved from the master.
Pillars can have minions assigned to them, and other minions that are not assigned to a pillar can not retrieve that information.
SaltStack command structure contains targets, commands, and arguments.
The target is the desired system that a command should run on. The target can be the MinionID of a minion, or * as a wildcard to target all minions called globbing