# What is SaltStack?

Salt is a new approach to infrastructure management. Easy enough to get running in minutes, scalable enough to manage tens of thousands of servers, and fast enough to communicate with them in seconds.

Salt delivers a dynamic communication bus for infrastructures that can be used for orchestration, remote execution, configuration management and much more.

See also

Offline documentation

Download a copy of the Salt documentation:

- PDF
- ePub
- Dash Docset

# Download

Salt source releases are available for download via PyPI:

> https://pypi.python.org/pypi/salt

The installation documents outline where to obtain packages and installation specifics for platforms:

> Installation

The Salt Bootstrap project is a single shell script which aims to automate the install correctly on platforms:

> https://github.com/saltstack/salt-bootstrap

# Getting Started

This walkthrough is made to help individuals get started quickly and gain a foundational knowledge of Salt:

Official Salt Walkthrough

Additional tutorials are available when getting started with Salt

States - Configuration Management with Salt:
  - Getting Started with States
  - Basic config management
  - Less basic config management
  - Advanced techniques
  - Salt Fileserver Path Inheritance
Masterless Quickstart:
  Salt Quickstart
A list of all tutorials can be found here:
  All Salt tutorials

# Salt in depth

Setting up and using Salt is a simple task but its capabilities run much, much deeper. These documents will lead to a greater understating of how Salt will empower infrastructure management.

## Remote execution

Remote execution is the core function of Salt. Running pre-defined or arbitrary commands on remote hosts.

Modules

  Salt modules are the core of remote execution. They provide functionality such as installing packages, restarting a service, running a remote command, transferring files, and infinitely more.

  Full list of modules
    The giant list of core modules that ship with Salt
  Writing modules
    A guide on how to write Salt modules.
Returners

  Salt returners allow saving minion responses in various datastores or to various locations in addition to display at the CLI.

  Full list of returners
    Store minion responses in Redis, Mongo, Cassandra, SQL or more.
  Writing returners
    Extending Salt to communicate with more interfaces is easy, new databases can be supported or custom interfaces can be easily communicated with.

## Targeting

Targeting is specifying which minions should execute commands or manage server configuration.

Globbing and regex
  Match minions using globbing and regular expressions.
Grains
  Match minions using bits of static information about the minion such as OS, software versions, virtualization, CPU, memory, and much more.
Node groups
  Statically define groups of minions.
Compound matchers
  Combine the above matchers as a single target.
Batching execution
  Loop through all matching minions so that only a subset are executing a command at one time.

## Configuration management

Building on the remote execution core is a robust and flexible configuration management framework. Execution happens on the minions allowing effortless, simultaneous configuration of tens of thousands of hosts.

States

  Express the state of a host using small, easy to read, easy to understand configuration files. No programming required.

  Full list of states
    Install packages, create users, transfer files, start services, and much more.
  Pillar System
    Salt's Pillar system
  States Overview
    An overview of States and some of the core components.
  Highstate data structure
    A dry vocabulary and technical representation of the configuration format that states represent.
  Writing states
    A guide on how to write Salt state modules. Extending Salt to directly manage in more software is easy.
Renderers

  Write state configuration files in the language, templating engine, or file type of choice. Salt's configuration management system is, under the hood, language agnostic.

  Full list of renderers
    YAML is not the only choice, many systems are available, from alternative templating engines to the PyDSL language for rendering sls formulas.
  Renderers
    Salt states are only concerned with the ultimate highstate data structure. How that data structure is created is not important.

## Miscellaneous topics

Salt is many splendid things.

File Server
  Salt can easily and quickly transfer files (in fact, that's how Salt States work). Even under heavy load, files are chunked and served.
Syndic
  A seamless master of masters. Scale Salt to tens of thousands of hosts or across many different networks.
Peer Communication
  Allow minions to communicate amongst themselves. For example, configure one minion by querying live data from all the others. With great power comes great responsibility.
Reactor System
  The reactor system allows for Salt to create a self aware environment by hooking infrastructure events into actions.
Firewall Settings and Salt
  A tutorial covering how to properly firewall a Salt Master server.
Scheduling Executions (like states)
  The schedule system in Salt allows for executions to be run of all sorts from the master or minion at automatic intervals.
Network topology
  At it's core, Salt is a highly scalable communication layer built on top of ZeroMQ that enables remote execution and configuration management. The possibilities are endless and Salt's future looks bright.
Testing Salt
  A howto for writing unit tests and integration tests.
Python API interface
  Use Salt programmatically from scripts and programs easily and simply via `import salt`.
Automatic Updates and Frozen Binary Deployments
  Use a frozen install to make deployments easier (Even on Windows!). Or take advantage of automatic updates to keep minions running the latest builds.
Windows Software Manager / Package Repository
  Looking for an easy way to manage software on Windows machines? Search no more! Salt has an integrated software package manager for Windows machines! Install software hosted on the master, somewhere on the network, or any HTTP, HTTPS, or ftp server.

## Reference

Command-line interface
  Read the Salt manpages.
Full list of master settings
  Read through the heavily-commented master configuration file.
Full list of minion settings
  Read through the heavily-commented minion configuration file.
Full table of contents
  Dense but complete.

# FAQ

See here for a list of Frequently Asked Questions.

# More information about the project

Release notes
  Living history of SaltStack.
Community
  How to get involved.
Salt Development
  Information for Hacking on Salt
Translate Documentation
  How to help out translating Salt to your language.

Current Salt release: 0.17.1

### Table Of Contents

- What is SaltStack?
- Download
- Getting Started
- Salt in depth
  - Remote execution
  - Targeting
  - Configuration management
  - Miscellaneous topics
  - Reference
- FAQ
- More information about the project

### Quick search

Enter search terms or a module, class or function name.

### Upcoming SaltStack Events

My conferences on Lanyrd