geerlingguy.supervisor
Rol de Ansible: Supervisor
Un rol de Ansible que instala Supervisor en Linux.
Requisitos
Python pip
debe estar instalado. Si no está instalado, puedes usar el rol de Ansible geerlingguy.pip
para instalar Pip antes de ejecutar este rol.
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
supervisor_version: ''
Instalar una versión específica de Supervisor configurando aquí. Consulta las versiones de Supervisor disponibles en Pypi. Si no se establece ninguna versión, se instalará la última versión estable de Supervisor cuando se ejecute el rol.
supervisor_started: true
supervisor_enabled: true
Elige si deseas usar un script de inicio o configuración de unidad de systemd para iniciar Supervisor cuando se instala y/o después de un inicio del sistema.
supervisor_config_path: /etc/supervisor
La ruta donde se debe almacenar la configuración de Supervisor.
supervisor_programs:
- name: 'foo'
command: /bin/cat
state: present
- name: 'apache'
command: apache2ctl -DFOREGROUND
state: present
configuration: |
autostart=true
autorestart=true
startretries=1
startsecs=1
redirect_stderr=true
stderr_logfile=/var/log/apache-err.log
stdout_logfile=/var/log/apache-out.log
user=root
killasgroup=true
stopasgroup=true
supervisor_programs
es una lista vacía por defecto; puedes definir una lista de programas
que serán gestionados por Supervisor. Si configuras state
como present
, se añadirá un archivo de configuración para el programa (nombrado [program-name-here].conf
) a la ruta conf.d
incluida en la configuración global de Supervisor. También puedes gestionar la configuración a nivel de programa por tu cuenta, fuera de este rol, si necesitas más flexibilidad.
supervisor_nodaemon: false
Configura en true
si necesitas ejecutar Supervisor en primer plano.
supervisor_log_dir: /var/log/supervisor
La ubicación donde se almacenarán los registros de Supervisor.
supervisor_user: root
supervisor_password: 'mi_contraseña_secreta'
El usuario bajo el cual se ejecutará supervisord
, y la contraseña que se utilizará al conectarse al servidor HTTP de Supervisor (ya sea para el acceso a supervisorctl
, o al ver la interfaz administrativa).
supervisor_unix_http_server_password_protect: true
supervisor_inet_http_server_password_protect: true
La protección por contraseña se puede desactivar para HTTP de Unix e HTTP de Inet configurando estas variables a false
. Esto deshabilitaría también la protección por contraseña para supervisorctl
.
supervisor_unix_http_server_enable: true
supervisor_unix_http_server_socket_path: /var/run/supervisor.sock
Si habilitar el servidor HTTP basado en socket UNIX y el archivo de socket a usar si está habilitado.
Nota: Por defecto, este rol habilita un servidor HTTP sobre un socket UNIX que se puede acceder localmente usando el
_user
y_password
definidos anteriormente. ¡Asegúrate de establecer unasupervisor_password
segura para evitar acceso no autorizado! (O, si no necesitas el servidor HTTP ni usarsupervisorctl
, deberías deshabilitar el servidor HTTP UNIX configurando esta variable afalse
).
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
Si habilitar el servidor HTTP basado en TCP, y la interfaz y el puerto en los que el servidor debe escuchar si está habilitado.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: all
roles:
- geerlingguy.pip
- geerlingguy.supervisor
Si necesitas usar supervisorctl
, puedes usar el módulo supervisorctl
incorporado de Ansible para la gestión, o ejecutarlo así (teniendo en cuenta la ruta de la variable a la carpeta de configuración):
supervisorctl -c /etc/supervisor/supervisord.conf -u root -p [contraseña] status all
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2017 por Jeff Geerling, autor de Ansible for DevOps.
Supervisor (process state manager) for Linux.
ansible-galaxy install geerlingguy.supervisor