Salt File Locations and Structure

There are several ways to set up the Salt file structure. This section describes how Salt is supported and set up as part of Uyuni Server. The main configuration file is /etc/salt/master.d/susemanager.conf.

Do not edit the /etc/salt/master.d/susemanager.conf configuration file. This file belongs to the spacewalk-setup package and is marked as %config. When SUSE updates the spacewalk-setup package, the susemanager.conf file is overwritten, and any customization is lost. Instead, add your own configuration file to the /etc/salt/master.d/ directory. This prevents the update process from deleting your settings from the main susemanager.conf configuration file.

Some settings from /etc/salt/master.d/susemanager.conf that can help with finding configuration options:

# Configure different file roots. Custom salt states should only be placed in
# /srv/salt.
# Users should not touch other directories listed here.
file_roots:
  base:
    - /usr/share/susemanager/salt
    - /usr/share/salt-formulas/states
    - /usr/share/susemanager/formulas/states
    - /srv/susemanager/salt
    - /srv/salt

# Configure different pillar roots. Custom pillar data should only be placed
# in /srv/pillar.
# Users should not touch other directories listed here.
pillar_roots:
  base:
    - /srv/pillar

When you are working with /etc/salt/master.d/susemanager.conf, be aware that:

  • Files listed are searched in the order they appear

  • The first matching file found is called

The Uyuni Server reads Salt state data from five root directories:

/usr/share/susemanager/salt

This directory is shipped and updated with Uyuni and includes certificate setup and common state logic to be applied to packages and channels.

Do not edit or add custom Salt data to this directory.

/usr/share/salt-formulas/states
/usr/share/susemanager/formulas/states

These directories are shipped and updated with Uyuni or additional extensions. They include states for Salt formulas.

Do not edit or add custom Salt data to this directory.

/srv/susemanager/salt

This directory is generated by Uyuni, based on assigned channels and packages for clients, groups, and organizations. This directory will be overwritten and regenerated. It is the Salt equivalent of the Uyuni database.

Do not edit or add custom Salt data to this directory.

Within this directory, each organization has a sub-directory.

Example: SLS File Directory Structure
├── manager_org_<org id>
│   ├── files
│   │    ... files needed by states (uploaded by users)...
│   └── state.sls
         ... other SLS files (created by users)...
For example:
├── manager_org_TESTING
│   ├── files
│   │   └── motd     # user created
│   │    ... other files needed by states ...
│   └── motd.sls     # user created
            ... other SLS files ...
/srv/salt

This directory is used for custom state data, modules, and related data. Uyuni does not operate or use this directory directly. The state data in this directory is used by the client highstate, and is merged with the total state result generated by Uyuni. Use this directory for custom Salt data.

The Uyuni Server reads Salt pillar data from two root directories:

/usr/share/susemanager/pillar

This directory is generated by Uyuni. It is shipped and updated together with Uyuni.

Do not edit or add custom Salt data to this directory.

/srv/pillar

By default, Uyuni does not operate or use this directory directly. The custom pillar data in this directory is merged with the pillar result created by Uyuni. Use this directory for custom Salt pillar data.

You can use the gitfs fileserver backend to serve Salt data from git repositories. For more information, see salt-gitfs.adoc.