Linux (DEB)

These instructions explain how to install Salt rpms on operating systems that are Debian-like (using apt-get install methods).

For a list of supported and tested operating systems, for running Salt, see Salt supported operating systems.

Install Salt DEBs

  1. Run the following command to install the Salt Project repository:

    # Ensure keyrings dir exists
    mkdir -p /etc/apt/keyrings
    # Download public key
    curl -fsSL https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public | sudo tee /etc/apt/keyrings/salt-archive-keyring.pgp
    # Create apt repo target configuration
    curl -fsSL https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.sources | sudo tee /etc/apt/sources.list.d/salt.sources
    
  2. Run sudo apt update to update metadata.

  3. Install the salt-minion, salt-master, or other Salt components:

    Populate /etc/apt/preferences.d/salt-pin-1001 in order to restrict upgrades to Salt 3006.x LTS:

    echo 'Package: salt-*
    Pin: version 3006.*
    Pin-Priority: 1001' | sudo tee /etc/apt/preferences.d/salt-pin-1001
    

    Available installs:

    sudo apt-get install salt-master
    sudo apt-get install salt-minion
    sudo apt-get install salt-ssh
    sudo apt-get install salt-syndic
    sudo apt-get install salt-cloud
    sudo apt-get install salt-api
    

    If wanting to install by a target point release, append the specific Salt full release version. For example:

    sudo apt-get install salt-common=3006.9
    sudo apt-get install salt-master=3006.9
    sudo apt-get install salt-minion=3006.9
    sudo apt-get install salt-ssh=3006.9
    sudo apt-get install salt-syndic=3006.9
    sudo apt-get install salt-cloud=3006.9
    sudo apt-get install salt-api=3006.9
    
    # Example commands for pinning a current package minor so that
    # it is skipped during system-wide apt-get upgrade events
    sudo apt-mark hold salt-master
    sudo apt-mark hold salt-minion
    sudo apt-mark hold salt-ssh
    sudo apt-mark hold salt-syndic
    sudo apt-mark hold salt-cloud
    sudo apt-mark hold salt-api
    

    Warning

    Salt dependency conflicts

    If going with a non-latest point release of a target major version, you may be required to install other salt packages in a pinned fashion. For example, to install salt-minion=3006.8, a user will be required to install salt-common at the same version:

    sudo apt-get install salt-minion=3006.8 salt-common=3006.8
    

    Warning

    STS not recommended for Production

    Salt Project recommends deploying LTS releases for Production environments.

    Populate /etc/apt/preferences.d/salt-pin-1001 in order to restrict upgrades to Salt 3007.x STS:

    echo 'Package: salt-*
    Pin: version 3007.*
    Pin-Priority: 1001' | sudo tee /etc/apt/preferences.d/salt-pin-1001
    

    Available installs:

    sudo apt-get install salt-master
    sudo apt-get install salt-minion
    sudo apt-get install salt-ssh
    sudo apt-get install salt-syndic
    sudo apt-get install salt-cloud
    sudo apt-get install salt-api
    

    If wanting to install by a target point release, append the specific Salt full release version. For example:

    sudo apt-get install salt-common=3007.1
    sudo apt-get install salt-master=3007.1
    sudo apt-get install salt-minion=3007.1
    sudo apt-get install salt-ssh=3007.1
    sudo apt-get install salt-syndic=3007.1
    sudo apt-get install salt-cloud=3007.1
    sudo apt-get install salt-api=3007.1
    
    # Example commands for pinning a current package minor so that
    # it is skipped during system-wide apt-get upgrade events
    sudo apt-mark hold salt-master
    sudo apt-mark hold salt-minion
    sudo apt-mark hold salt-ssh
    sudo apt-mark hold salt-syndic
    sudo apt-mark hold salt-cloud
    sudo apt-mark hold salt-api
    

    Warning

    Salt dependency conflicts

    If going with a non-latest point release of a target major version, you may be required to install other salt packages in a pinned fashion. For example, to install salt-minion=3007.0, a user will be required to install salt-common at the same version:

    sudo apt-get install salt-minion==3007.0 salt-common==3007.0
    

    Warning

    STS not recommended for Production

    Salt Project recommends deploying LTS releases for Production environments.

    If users would like to leave installs to come from either LTS or STS, whichever major version is latest.

    Available installs:

    sudo apt-get install salt-master
    sudo apt-get install salt-minion
    sudo apt-get install salt-ssh
    sudo apt-get install salt-syndic
    sudo apt-get install salt-cloud
    sudo apt-get install salt-api
    

    If wanting to install by a target point release, append the specific Salt full release version. For example:

    sudo apt-get install salt-common=3007.1
    sudo apt-get install salt-master=3007.1
    sudo apt-get install salt-minion=3007.1
    sudo apt-get install salt-ssh=3007.1
    sudo apt-get install salt-syndic=3007.1
    sudo apt-get install salt-cloud=3007.1
    sudo apt-get install salt-api=3007.1
    
    # Example commands for pinning a current package minor so that
    # it is skipped during system-wide apt-get upgrade events
    sudo apt-mark hold salt-master
    sudo apt-mark hold salt-minion
    sudo apt-mark hold salt-ssh
    sudo apt-mark hold salt-syndic
    sudo apt-mark hold salt-cloud
    sudo apt-mark hold salt-api
    

    Warning

    If going with a non-latest point release of a target major version, you may be required to install other salt packages in a pinned fashion. For example, to install salt-minion=3007.0, a user will be required to install salt-common at the same version:

    sudo apt-get install salt-minion==3007.0 salt-common==3007.0
    
  4. Enable and start the Salt services

    Available services:

    sudo systemctl enable salt-master && sudo systemctl start salt-master
    sudo systemctl enable salt-minion && sudo systemctl start salt-minion
    sudo systemctl enable salt-syndic && sudo systemctl start salt-syndic
    sudo systemctl enable salt-api && sudo systemctl start salt-api
    

    Note

    When you install a onedir version of Salt (3006 and later), Salt installs its own local version of Python and the dependencies needed for the core functionality of Salt.

    After installing a onedir verison of Salt, your system has both a global version of Python at the system level and a local version of Python used by Salt. This architecture change means that the Salt onedir paths for Python are different and you need to change how you install third-party Python dependencies that you use with Salt, including your state files. See Install dependencies for more information.

After installing Salt on your operating system, you need to complete the following post-installation steps:

Browse the repo