The Proxy Runner

The Proxy Runner is the core functionality of salt-sproxy and can be used to trigger jobs as Reactions to external events, or invoked when Using the Salt REST API.

In both cases mentioned above you are going to need to have a Salt Master running, that allows you to set up the Reactors and the Salt API; that means, the proxy Runner needs to be available on your Master. To do so, you have two options:

1. Reference it from the salt-sproxy installation

After installing salt-sproxy, you can execute the following command:

$ salt-sproxy --display-file-roots
salt-sproxy is installed at: /home/mircea/venvs/salt-sproxy/lib/python3.6/site-packages/salt_sproxy

You can configure the file_roots on the Master, e.g.,

file_roots:
  base:
    - /home/mircea/venvs/salt-sproxy/lib/python3.6/site-packages/salt_sproxy

Or only for the Runners:

runner_dirs:
  - /home/mircea/venvs/salt-sproxy/lib/python3.6/site-packages/salt_sproxy/_runners

1.a. Update the file_roots and / or runner_dirs manually

As suggested in the output, you can directly reference the salt-sproxy installation path to start using the proxy Runner (and other extension modules included in the package).

After updating the master configuration file, make sure to execute salt-run saltutil.sync_all or salt-run saltutil.sync_runners.

1.b. Use the --save-file-roots CLI argument to update the master config

A simpler alternative is executing with --save-file-roots which adds the path for you, and synchronizes the extension modules provided together with e.g.,

$ salt-sproxy --save-file-roots
/home/mircea/venvs/salt-sproxy/lib/python3.6/site-packages/salt_sproxy added to the file_roots:

file_roots:
  base:
    - /home/mircea/venvs/salt-sproxy/lib/python3.6/site-packages/salt_sproxy

Now you can start using salt-sproxy for event-driven automation, and the Salt REST API.
See https://salt-sproxy.readthedocs.io/en/latest/salt_api.html
and https://salt-sproxy.readthedocs.io/en/latest/events.html for more details.

Note

While this option will preserve the configuration you have (but appending another path to file_roots and / or runner_dirs), it may re-arrange (visually) the contents - however without any side effects.

2. Copy the source file

You can either download it from https://github.com/mirceaulinic/salt-sproxy/blob/master/salt_sproxy/_runners/proxy.py, e.g., if your file_roots configuration on the Master looks like:

file_roots:
  base:
    - /srv/salt

You are going to need to create a directory under /srv/salt/_runners, then download the proxy Runner there:

$ mkdir -p /srv/salt/_runners
$ curl -o /srv/salt/_runners/proxy.py -L \
  https://raw.githubusercontent.com/mirceaulinic/salt-sproxy/master/salt_sproxy/_runners/proxy.py

Note

In the above I’ve used the raw like from GitHub to ensure the source code is preserved.

Alternatively, you can also put it under an arbitrary path, e.g., (configuration on the Master)

runner_dirs:
  - /path/to/runners

Downloading the proxy Runner under that specific path:

$ curl -o /path/to/runners/proxy.py -L \
  https://raw.githubusercontent.com/mirceaulinic/salt-sproxy/master/salt_sproxy/_runners/proxy.py