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 --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

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).

A simpler alternative is executing with --save-file-roots which adds the path for you, 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.

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