New in version 2015.8.0.
Salt Engines are long-running, external system processes that leverage Salt.
Engines have access to Salt configuration, execution modules, and runners (__opts__
, __salt__
, and __runners__
).
Engines are executed in a separate process that is monitored by Salt. If a Salt engine stops, it is restarted automatically.
Engines can run on the Salt master and on Salt minions.
Salt engines enhance and replace the external processes functionality.
Salt engines are configured under an engines
top-level section in your Salt master or Salt minion configuration. Provide a list of engines and parameters under this section.
engines:
- logstash:
host: log.my_network.com
port: 5959
proto: tcp
New in version 3000.
Multiple copies of a particular Salt engine can be configured by including the engine_module
parameter in the engine configuration.
engines:
- production_logstash:
host: production_log.my_network.com
port: 5959
proto: tcp
engine_module: logstash
- develop_logstash:
host: develop_log.my_network.com
port: 5959
proto: tcp
engine_module: logstash
Salt engines must be in the Salt path, or you can add the engines_dirs
option in your Salt master configuration with a list of directories under which Salt attempts to find Salt engines. This option should be formatted as a list of directories to search, such as:
engines_dirs:
- /home/bob/engines
An example Salt engine, https://github.com/saltstack/salt/blob/master/salt/engines/test.py, is available in the Salt source. To develop an engine, the only requirement is that your module implement the start()
function.