SPM packages are installed to your Salt master, where they are available to Salt minions using all of Salt's package management functions.
Before SPM can use a repository, two things need to happen. First, the Salt master needs to know where the repository is through a configuration process. Then it needs to pull down the repository metadata.
Repositories are configured by adding each of them to the
/etc/salt/spm.repos.d/spm.repo file on each Salt master. This file contains
the name of the repository, and the link to the repository:
my_repo: url: https://spm.example.com/
For HTTP/HTTPS Basic authorization you can define credentials:
Beware of unauthorized access to this file, please set at least 0640 permissions for this configuration file:
The URL can use
my_repo: url: file:///srv/spm_build
After the repository is configured on the Salt master, repository metadata is
downloaded using the
spm update_repo command:
A file for each repo is placed in
/var/cache/salt/spm on the Salt master
after you run the update_repo command. If you add a repository and it
does not seem to be showing up, check this path to verify that the
repository was found.
SPM packages are installed to the
srv/spm/salt folder on your Salt master.
This path needs to be added to the file roots on your Salt master
file_roots: base: 1. /srv/salt 2. /srv/spm/salt
Restart the salt-master service after updating the
To install a package, use the
spm install command:
spm install apache
Currently, SPM does not check to see if files are already in place before installing them. That means that existing files will be overwritten without warning.
You can also install SPM packages using a local SPM file using the
spm local install /srv/spm/apache-201506-1.spm
An SPM repository is not required when using spm local install.
If an installed package includes Pillar data, be sure to target the installed pillar to the necessary systems using the pillar Top file.
Packages may be removed after they are installed using the
spm remove apache
If files have been modified, they will not be removed. Empty directories will also be removed.