entanet_devops.ansible_role_supervisor
Rol de Ansible: Supervisor
Un Rol de Ansible que instala Supervisor en Linux.
Requisitos
Se debe tener instalado pip
de Python. 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 sus valores predeterminados (ver defaults/main.yml
):
supervisor_version: latest
Instala una versión específica de Supervisor configurándola aquí. Consulta versiones disponibles de Supervisor en Pypi. latest
instala la última versión estable.
supervisor_started: true
supervisor_enabled: true
Elige si deseas usar un script de inicio o la configuración de la unidad systemd para iniciar Supervisor cuando se instale y/o después de un arranque del sistema.
supervisor_config_path: /etc/supervisor
La ruta donde se 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 estableces state
como present
, se añadirá un archivo de configuración para el programa (nombrado [program-name-here].conf
) en la ruta conf.d
incluida por 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
Establece 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 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 por Unix e Inet HTTP estableciendo estas variables a false
. Esto desactivaría la protección por contraseña para supervisorctl
también.
supervisor_unix_http_server_enable: true
supervisor_unix_http_server_socket_path: /var/run/supervisor.sock
Si se debe habilitar el servidor HTTP basado en socket UNIX, y el archivo de socket a utilizar 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 prevenir accesos no autorizados! (O, si no necesitas el servidor HTTP ni usarsupervisorctl
, deberías desactivar el servidor HTTP de Unix estableciendo esta variable afalse
).
supervisor_inet_http_server_enable: false
supervisor_inet_http_server_port: '*:9001'
Si se debe habilitar el servidor HTTP basado en TCP, y la interfaz y puerto en los que el servidor debe escuchar si se habilita.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: all
roles:
- geerlingguy.pip
- geerlingguy.supervisor
Si necesitas usar supervisorctl
, puedes usar ya sea el módulo supervisorctl
integrado de Ansible para la gestión, o ejecutarlo así (teniendo en cuenta la ruta variable al directorio 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 entanet_devops.ansible_role_supervisor