7.3 KiB
Get started with Salt
Presentations
A list of presentations and interviews on Salt (including the FLOSS Weekly interview).
Salt is a remote execution and configuration management tool.
Salt is designed to be secure using AES encryption and public-key authentication; incredibly scalable using an advanced ZeroMQ topology; fast and efficient using msgpack; and extensible using small and simple Python modules.
Read the Salt overview <topics/index>
for a more thorough
description.
Tutorial 1: Remote execution
Screencasts
Watch the remote execution screencast.
The quickest way to see Salt in action is to run a command on a minion
host from the master
host. This is widely
known as remote
execution
— executing commands on remote hosts.
Installation </topics/installation/index>
Configure the minion <topics/configuration>
Run remote commands <topics/tutorials/modules>
Tutorial 2: Configuration management
Now that you have the basics out of the way, learn to use Salt to
configure your servers. This is widely known as configuration management
—
installing packages, configuring users and services, and much more.
Getting Started with States<topics/tutorials/starting_states>
Basic config management <topics/tutorials/states_pt1>
Less basic config management <topics/tutorials/states_pt2>
Advanced techniques <topics/tutorials/states_pt3>
Salt in depth
Setting up and using Salt is a simple task but it's capabilities run much, much deeper. Gaining a better understanding of how Salt works will allow you to truly make it work for you.
More tutorials!
Bootstraping Salt on EC2 <topics/tutorials/bootstrap_ec2>
Installing Salt on FreeBSD <topics/installation/freebsd>
The components of Salt
Targeting </topics/targeting/index>
Targeting is specifying which minions should execute commands or manage server configuration.
Globbing and regex </topics/targeting/globbing>
-
Match minions using globbing and regular expresssions.
Grains </topics/targeting/grains>
-
Match minions using bits of static information about the minion such as OS, software versions, virtualization, CPU, memory, and much more.
Node groups </topics/targeting/nodegroups>
-
Statically define groups of minions.
Compound matchers </topics/targeting/compound>
-
Combine the above matchers as a single target.
Remote execution
Remote execution is the core functionality 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 a package, restarting a service, running a remote command, transferring a file — and the list goes on.
Full list of modules </ref/modules/all/index>
-
The giant list of core modules that ship with Salt (And there are even more in the salt-contrib repository!)
Writing modules <ref/modules/index>
-
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 </ref/returners/all/index>
-
Store minion responses in Redis, Mongo, Cassandra or more.
Writing returners <ref/returners/index>
-
If we're missing your favorite storage backend, webservice, or you need a custom endpoint returners are tiny and simple to write.
Configuration management
Building on the remote execution core is a robust and flexible config management framework. Execution happens on the minions allowing effortless, simultaneous configuration of thousands of hosts.
- States
-
Express the state of a host using small, easy to read, easy to understand configuration files. No programming required (unless you want to).
Full list of states <ref/states/all/index>
-
Install packages, create users, transfer files, start services, and more and more.
Using states <ref/states/index>
-
You've seen the big list of available states, now learn how to call them.
Highstate data structure <ref/states/highstate>
-
A dry, vocabulary and technical representation of the configuration format that states represent.
- Renderers
-
Write state configuration files in the language, templating engine, or file type of your choice. The world doesn't need yet another DSL.
Full list of renderers <ref/renderers/all/index>
-
YAML? JSON? Jinja? Mako? Python? We got you covered. (And if we don't, new renderers are tiny and easy to write.)
Renderers <ref/renderers/index>
-
Salt states are only concerned with the ultimate highstate data structure. How you create that data structure isn't our business. Tweak a config option and use whatever you're most comfortable with.
Miscellaneous topics
Salt is many splendid things.
File Server <ref/file_server/index>
-
Salt can easily and quickly transfer files (in fact, that's how Salt States work). Even under load, files are chunked and served.
Syndic <ref/syndic>
-
A seamless master of masters. Scale Salt to thousands of hosts or across many different networks.
Peer communication <ref/peer>
-
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.
Network topology <ref/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.
Python API interface <ref/python-api>
-
Use Salt programmatically from your own scripts and programs easily and simply via
import salt
.
Reference
Command-line interface <ref/cli/index>
-
Read the Salt manpages.
Full list of master settings <ref/configuration/master>
-
Read through the heavily-commented master configuration file.
Full list of minion settings <ref/configuration/minion>
-
Read through the heavily-commented minion configuration file.
Full table of contents </contents>
-
Dense but complete.
More information about the project
Release notes </topics/releases/index>
-
Where we've been.
Community </topics/community>
-
How you can get involved.