preloader

Salt Project

Table of Contents

Overview

This section contains notes and resources related to SaltStack.

Terminology

There are a few different tools and terminologies within SaltStack ecosystem as shown below.

Salt Master

The Salt Master is the central manager for the Salt Minions and by default uses 0mq but can also use a custom UDP based protocol named RAET.

Salt Minion

The Salt Minion is an agent installed on the hosts that connects to the Salt Master waiting for instructions.

Salt Execution Modules

Salt Execution Modules are pre-defined commands to run on remote hosts.

One example is test.ping which returns True if the Salt Minion is responding.

Example usage

# Check which hosts are alive.
salt '*' test.ping

Salt Runners

Salt Runners, invoked from salt-run are similar to Salt Execution modules except they run on the Salt Master instead of the Salt Minion.

Salt States

Salt States describe the desired state of a specific part of a targeted system. For example the following state ensure that a file is present on the system

# Example
Ensure hosts file present:
  file.present:
    - name: /etc/hosts
    - source: files/hosts

Salt Reactor

Enables the ability to fire off events based on data processed on the 0mq bus. This might include, restarting a server of failure or triggering a re-deployment.

This reactor is based on the premise of “listening” for events.

Salt Thorium Complex Reactor

An Experimental engine added in 2016.3.0, The Throrium Reactor is designed to be able to react based on aggregated data or multiple events.

Thorium uses an in-memory register to keep track of events.

Salt Orchestrator

Executing States is done in parallel on all Minions. The Orchestrator is for when you want to run states sequentially, ie drain stop a server behind a load balancer, upgrade the server, and add the server back to the load balance pool.

Salt SSH

The ability to apply states and modules over SSH instead of the Master/Minion deployment. This is much slower than the 0mq version. This can be compared with the Ansible method.

Salt Masterless

A Minion which does not require a master to operate. The State tree is processed locally by the salt-call utility.

Salt Mine

A facility to collect data from Minions and store it on the Master. This data is then available for use by other Minions.

Salt Cloud

Salt-Cloud is for provisioning systems on Cloud Hosts and Hypervisors

Salt Pillar

A key-value DB stored encrypted on each Minion, and only available to that Minion. This is where passwords and configuration for the Minion is stored.