Difficulty: Beginner
Estimated Time: 30 minutes

What is Salt?

Salt is a different approach to infrastructure management, founded on the idea that high-speed communication with large numbers of systems can open up new capabilities. This approach makes Salt a powerful multitasking system that can solve many specific problems in an infrastructure.

The backbone of Salt is the remote execution engine, which creates a high-speed, secure and bi-directional communication net for groups of systems. On top of this communication system, Salt provides an extremely fast, flexible, and easy-to-use configuration management system called Salt States.

Salt functions on a master/minion topology. A master server acts as a central control bus for the clients, which are called minions. The minions connect back to the master.


In this tutorial, you will learn how to:

  • Set up a Salt Master
  • Set up a Salt Minion
  • Configure a Minion to find a Salt Master
  • Use Salt-Key to establish Master-Minion communication
  • Sending your first commands to a Minion


Salt has been made to be very easy to install and get started. The installation documents contain instructions for all supported platforms. In this scenario, we've already installed Salt on a Salt Master and Salt Minion allowing you to get started using Salt immediately.

To prevent you from having to set up the prerequisites to learning, we've taken the liberty of pre-installing and configuring a basic Master-Minion configuration. You will be running the commands in this tutorial in the following environment:

Hostname Operating System Salt Role Salt Version
salt-master Ubuntu 16.04.5 LTS (Xenial Xerus) Master 2019.2.0 (Fluorine)
salt-minion Ubuntu 16.04.5 LTS (Xenial Xerus) Minion 2019.2.0 (Fluorine)

So Much More

This concludes the Day 1 with Salt walk-through, but there are many more things still to learn! These documents will cover important core aspects of Salt:

A few more tutorials are also available:

This still is only scratching the surface, many components such as the reactor and event systems, extending Salt, modular components and more are not covered here. For an overview of all Salt features and documentation, look at the Table of Contents.

Day 1 With Salt

Step 1 of 5

Setting up the Salt Master

Turning on the Salt Master is easy -- just turn it on! The default configuration is suitable for the vast majority of installations. The Salt Master can be installed on Linux and can be controlled one of two ways; either by the local Linux/Unix service manager or directly via the command line.

Distribution Type Command
Systemd based platforms systemctl start salt-master
SysV Init systems /etc/init.d/salt-master start
Upstart based systems service salt-master start

In the scenario, we're working on an Ubuntu box so we'll use the service command to start the Salt Master.

service salt-master start

Alternatively, if the Salt Master is not already started, it can be started directly on the command-line with salt-master -d or in the foreground in debug mode with salt-master -l debug thus greatly increasing the command output.

Note that the Salt Master needs to bind to two TCP network ports; 4505 and 4506. For more in depth information on firewalling these ports, refer to the Opening Up the Firewall for Salt tutorial.

Terminal Host 2