The rest_cherrypy
netapi module is a standard Python WSGI app. It can be
deployed one of two ways.
The default configuration is to run this module using salt-api to start the Python-based CherryPy server. This server is lightweight, multi-threaded, encrypted with SSL, and should be considered production-ready.
This module may be deployed on any WSGI-compliant server such as Apache with mod_wsgi or Nginx with FastCGI, to name just two (there are many).
Note, external WSGI servers handle URLs, paths, and SSL certs directly. The
rest_cherrypy
configuration options are ignored and the salt-api
daemon
does not need to be running at all. Remember Salt authentication credentials
are sent in the clear unless SSL is being enforced!
An example Apache virtual host configuration:
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
ServerAdmin webmaster@example.com
LogLevel warn
ErrorLog /var/www/example.com/logs/error.log
CustomLog /var/www/example.com/logs/access.log combined
DocumentRoot /var/www/example.com/htdocs
WSGIScriptAlias / /path/to/salt/netapi/rest_cherrypy/wsgi.py
</VirtualHost>
salt.netapi.rest_cherrypy.wsgi.
application
(environ, start_response)¶salt.netapi.rest_cherrypy.wsgi.
bootstrap_app
()¶Grab the opts dict of the master config by trying to import Salt
salt.netapi.rest_cherrypy.wsgi.
get_application
(*args)¶Returns a WSGI application function. If you supply the WSGI app and config it will use that, otherwise it will try to obtain them from a local Salt installation
Docs for previous releases are available on readthedocs.org.
Latest Salt release: 2015.8.0