ansible-supervisor
ansible-supervisor copied to clipboard
Ansible role to set up (the latest or a specific version of) supervisor in Debian-like systems
supervisor
Set up the latest or a specific version of supervisor in Debian-like systems.
Requirements
python(will be installed)pip(will not installed)
Variables
-
supervisor_python_version_major[default:2]: Python version to installsupervisorfor. -
supervisor_python_version[default:supervisor_python_version]: Deprecated -
supervisor_version[default:latest]: Supervisor version to install (e.g.latest,3.3.1) -
supervisor_unix_http_server_file[default:/var/run/supervisor.sock]: A path to a UNIX domain socket (e.g./tmp/supervisord.sock) on which supervisor will listen for HTTP/XML-RPC requests.supervisorctluses XML-RPC to communicate with supervisord over this port -
supervisor_unix_http_server_chmod[default:'0700']: Change the UNIX permission mode bits of the UNIX domain socket to this value at startup -
supervisor_unix_http_server_chown[optional]: The user and group ofsupervisor_unix_http_server_filefile. Use the following format:user:group -
supervisor_unix_http_server_username[optional]: The username for authentication to the HTTP/XML-RPC server -
supervisor_unix_http_server_password[optional]: The password for authentication to the HTTP/XML-RPC server. This can be a cleartext password, or can be specified as aSHA-1hash if prefixed by the string{SHA} -
supervisor_system_user[default:root]: Name of the user that should own the config file/directory -
supervisor_system_group[default:root]: Name of the group that should own the config file/directory -
supervisor_inet_http_server_enabled[default:false]: Whether or not to enable the HTTP server -
supervisor_inet_http_server_port[default:9001]: A TCP host:port value or (e.g.127.0.0.1:9001) on which supervisor will listen for HTTP/XML-RPC requests.supervisorctlwill use XML-RPC to communicate with supervisord over this port -
supervisor_inet_http_server_username[default:admin]: The username required for authentication to this HTTP server Make sure to change! -
supervisor_inet_http_server_password[default:'4ubA&Et=ASPe']: The password required for authentication to this HTTP server. This can be a cleartext password, or can be specified as a SHA-1 hash if prefixed by the string{SHA}Make sure to change! -
supervisor_supervisord_nodaemon[default:false]: If true, supervisord will start in the foreground instead of daemonizing -
supervisor_supervisord_logfile[default:/var/log/supervisor/supervisord.log]: The path to the activity log of the supervisord process -
supervisor_supervisord_pidfile[default:/var/run/supervisord.pid]: The location in which supervisord keeps its pid file -
supervisor_supervisord_childlogdir[default:/var/log/supervisor]: The directory used forAUTOchild log files -
supervisor_supervisord_environment[default:'']: A list of key/value pairs comma separated that will be placed in the environment (e.g.'KEY1="VALUE1",KEY2="VALUE2"') -
supervisor_supervisorctl_serverurl[default:"unix://{{ supervisor_unix_http_server_file }}"]: The URL that should be used to access the supervisord server, e.g.http://localhost:9001. For UNIX domain sockets, useunix:///absolute/path/to/file.sock -
supervisor_include[default:'/etc/supervisor/conf.d/*.conf']: A (single) absolute file glob of files to include -
supervisor_programs_present[default:{}, seetemplates/etc/supervisor/conf.d/program.conf.j2]: Program definitions -
supervisor_programs_present.{n}[required]: Program name -
supervisor_programs_present.{n}.command[required]: The command that will be run when this program is started -
supervisor_programs_present.{n}.directory[optional]: A directory to which supervisord should temporarily chdir before exec’ing the child -
supervisor_programs_present.{n}.environment[optional]: A list of key/value pairs comma separated that will be placed in the child process’ environment (e.g. 'KEY1="VALUE1",KEY2="VALUE2"') -
supervisor_programs_present.{n}.autostart[optional, defaulttrue]: If true, this program will start automatically when supervisord is started -
supervisor_programs_present.{n}.autorestart[optional, defaultunexpected]: Whether the process will be autorestarted (e.g.true,false) -
supervisor_programs_present.{n}.startretries[optional]: The number of serial failure attempts that supervisord will allow when attempting to start the program before giving up -
supervisor_programs_present.{n}.startsecs[optional]: The total number of seconds which the program needs to stay running after a startup to consider the start successful -
supervisor_programs_present.{n}.stdout_logfile[optional]: Put process stdout output in this file -
supervisor_programs_present.{n}.stdout_logfile_maxbytes[optional]: The maximum number of bytes that may be consumed bystdout_logfilebefore it is rotated -
supervisor_programs_present.{n}.stderr_logfile[optional]: Put process stderr output in this file -
supervisor_programs_present.{n}.stderr_logfile_maxbytes[optional]: The maximum number of bytes before logfile rotation forstderr_logfile -
supervisor_programs_present.{n}.user[optional]: This UNIX user account will be used as the account which runs the program -
supervisor_programs_present.{n}.numprocs[optional]: Supervisor will start as many instances of this program as named by numprocs -
supervisor_programs_present.{n}.process_name[optional]: Process name, defaults to%(program_name)s-%(process_num)swhennumprocs> 1 -
supervisor_programs_present.{n}.stopsignal[optional]: The signal used to kill the program when a stop is requested -
supervisor_programs_present.{n}.stopwaitsecs[optional]: The number of seconds to wait for the OS to return aSIGCHILDto supervisord after the program has been sent a stopsignal -
supervisor_programs_present.{n}.stopasgroup[optional, defaultfalse]: Iftrue, the flag causes supervisor to send the stop signal to the whole process group and implieskillasgroupistrue -
supervisor_programs_present.{n}.killasgroup[optional, defaultfalse]: Iftrue, when resorting to sendSIGKILLto the program to terminate it send it to its whole process group instead, taking care of its children as well -
supervisor_programs_absent[default:{}]: Program definitions (to be removed) -
supervisor_groups_present[default:{}, seetemplates/etc/supervisor/conf.d/group.conf.j2]: Group definitions -
supervisor_groups_present.{n}[required]: Group name -
supervisor_groups_present.{n}.programs[required]: List of programs -
supervisor_groups_present.{n}.priority[optional]: A priority number -
supervisor_groups_absent[default:{}]: Group definitions (to be removed)
Dependencies
None
Recommended
ansible-pip(see)
Example
---
- hosts: all
roles:
- oefenweb.supervisor
Adding two programs in one group
supervisor_programs_present:
foo:
command: 'sleep 10'
directory: /tmp
autostart: true
autorestart: true
startretries: 3
stdout_logfile: /tmp/foo.out
stdout_logfile_maxbytes: 0
stderr_logfile: /tmp/foo.err
stderr_logfile_maxbytes: 0
user: vagrant
numprocs: 8
process_name: '%(program_name)s-%(process_num)s'
bar:
command: 'sleep 10'
directory: /tmp
autostart: true
autorestart: true
startretries: 3
stdout_logfile: /tmp/bar.out
stdout_logfile_maxbytes: 0
stderr_logfile: /tmp/bar.err
stderr_logfile_maxbytes: 0
user: vboxadd
supervisor_groups_present:
foo-and-bar:
programs:
- foo
- bar
priority: 10
Removing a group
supervisor_groups_absent:
foo-and-bar: {}
License
MIT
Author Information
Mischa ter Smitten
Feedback, bug-reports, requests, ...
Are welcome!