Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/oefenweb/ansible-supervisor
Ansible role to set up (the latest or a specific version of) supervisor in Debian-like systems
https://github.com/oefenweb/ansible-supervisor
ansible debian init init-system supervisord ubuntu xml-rpc xmlrpc-server
Last synced: about 1 month ago
JSON representation
Ansible role to set up (the latest or a specific version of) supervisor in Debian-like systems
- Host: GitHub
- URL: https://github.com/oefenweb/ansible-supervisor
- Owner: Oefenweb
- License: mit
- Created: 2015-03-26T19:25:40.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2023-11-02T11:07:24.000Z (about 1 year ago)
- Last Synced: 2023-11-02T11:37:47.184Z (about 1 year ago)
- Topics: ansible, debian, init, init-system, supervisord, ubuntu, xml-rpc, xmlrpc-server
- Language: Jinja
- Homepage:
- Size: 154 KB
- Stars: 34
- Watchers: 4
- Forks: 31
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
## supervisor
[![CI](https://github.com/Oefenweb/ansible-app-dev-db-server/workflows/CI/badge.svg)](https://github.com/Oefenweb/ansible-app-dev-db-server/actions?query=workflow%3ACI)
[![Ansible Galaxy](http://img.shields.io/badge/ansible--galaxy-supervisor-blue.svg)](https://galaxy.ansible.com/Oefenweb/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 install `supervisor` for.
* `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. `supervisorctl` uses 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 of `supervisor_unix_http_server_file` file. 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 a `SHA-1` hash 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. `supervisorctl` will 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 for `AUTO` child 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, use `unix:///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: `{}`, see `templates/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, default `true`]: If true, this program will start automatically when supervisord is started
* `supervisor_programs_present.{n}.autorestart` [optional, default `unexpected`]: 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 by `stdout_logfile` before 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 for `stderr_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)s` when `numprocs` > 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 a `SIGCHILD` to supervisord after the program has been sent a stopsignal
* `supervisor_programs_present.{n}.stopasgroup` [optional, default `false`]: If `true`, the flag causes supervisor to send the stop signal to the whole process group and implies `killasgroup` is `true`
* `supervisor_programs_present.{n}.killasgroup` [optional, default `false`]: If `true`, when resorting to send `SIGKILL` to 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: `{}`, see `templates/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](https://github.com/Oefenweb/ansible-pip))
#### Example
```yaml
---
- hosts: all
roles:
- oefenweb.supervisor
```##### Adding two programs in one group
```yaml
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: vboxaddsupervisor_groups_present:
foo-and-bar:
programs:
- foo
- bar
priority: 10
```##### Removing a group
```yaml
supervisor_groups_absent:
foo-and-bar: {}
```#### License
MIT
#### Author Information
Mischa ter Smitten
#### Feedback, bug-reports, requests, ...
Are [welcome](https://github.com/Oefenweb/ansible-supervisor/issues)!