By design, Salt is an extensible system. It lends itself to the creation and easy deployment of custom modifications such as Beacons, Renderers, Returners, Outputters, Log_Handlers and more. One mechanism for distribution of custom code is the Salt Function saltutil.sync_all.
`saltutil.sync_all` function Works
Custom code is typically introduced into Salt infrastructure by populating the following directories:
- `/srv/salt/_modules`; and
- `/srv/salt/_states`; and
And running one of the following commands:
- `state.highstate`; or
- `saltutil.sync_all`; or
- `saltutil.sync_states`; or
Other items that can be synced using this mechanism include: Beacons, Renderers, Returners, Outputters, Log_Handlers
Additional Details can be found here:
SaltStack support is limited to code that is released by SaltStack, unless otherwise agreed.
For example, SaltStack may require the removal of custom code with a function like saltutil.sync_all before the SaltStack technical team proceeds with support.
If an environment may not be supported because custom code cannot be removed or disabled, the customer must engage with SaltStack Professional Services for resolution.
The contents of the
`/srv/salt/_states` directories are considered customer files. Salt preserves these directories, and the directory content, if the customer upgrades their Salt version.
We recommend that all directory content be reevaluated before updating to a newer version of Salt. To prevent potential regressions:
- Update the State and Module counterparts as a part of the upgrade.
- Conduct a thorough testing phase of affected files and directories.
- Ensure all dependent State and Module files are included.
Version Roll Back
- In order to revert back to the code that is native to the given version of Salt, simply depopulate the noted directories and run one of the noted commands.