netapi modules, put simply, bind a port and start a service.
They are purposefully open-ended and can be used to present a variety of
external interfaces to Salt, and even present multiple interfaces at once.
netapi configuration is done in the Salt master
config and takes a form similar to the following:
rest_cherrypy: port: 8000 debug: True ssl_crt: /etc/pki/tls/certs/localhost.crt ssl_key: /etc/pki/tls/certs/localhost.key
Like all module types in Salt,
netapi modules go through
Salt's loader interface to determine if they should be loaded into memory and
__virtual__ function in the module makes this determination and should
False or a string that will serve as the name of the module. If the
module raises an
ImportError or any other errors, it will not be loaded.
start() function will be called for each
module that is loaded. This function should contain the server loop that
actually starts the service. This is started in a multiprocess.
support running multiple instances by copying and renaming entire directory
of those. To start the copied multiple
netapi modules, add
configuration blocks for the copied
netapi modules in the
Salt Master config. The name of each added configuration block must match
with the name of each directory of the copied
As with the rest of Salt, it is a best-practice to include liberal inline
documentation in the form of a module docstring and docstrings on any classes,
methods, and functions in your
The loader makes the
__opts__ data structure available to any function in