Estoy tratando de reiniciar Supervisor a través de mi Playbook de Ansible, pero parece que me encuentro con un problema con el módulo supervisor de Ansible.
En mi configuración de Supervisor he definido un programa:
[program:process]
process_name=%(program_name)s_%(process_num)02d
command=/home/box1/workers/bin/process
numprocs=64
directory=/home/box1/workers/bin
autostart=true
autorestart=true
startretries=5
stderr_logfile=/tmp/%(program_name)s-err.log
stdout_logfile=/tmp/%(program_name)s-out.log
user=root
Y esto funciona bien. Sin embargo, cuando intento reiniciar Supervisor a través de Ansible, aparece el siguiente error:
failed: [box1] => {"failed": true}
msg: program:process: ERROR (no such process)
program:process: ERROR (no such process)
La configuración de mi tarea Ansible se ve así:
- name: Restart Supervisor
sudo: yes
supervisorctl: name=program:process state=restarted config=/etc/supervisor/supervisord.conf
Para el nameparámetro He tratado program:process, program, program:y processpero ninguno parece funcionar. Actualmente estoy en Ansible 1.5.4.
ansible
supervisord
Luke
fuente
fuente

Respuestas:
El
supervisorctlmódulo Ansible no admite elreloadcomando ( ver aquí ), que es necesario para que el supervisor tome nuevas entradas de configuración.Puedes hacerlo tú mismo así:
Parece que falta la documentación sobre reload / reread / update / restart, y esta publicación de blog está desactualizada ; puedes experimentar para asegurarte de que
reloadhace lo que esperas.Finalmente, no coloque las definiciones de su programa en supervisord.conf . En su lugar, colóquelos como archivos individuales en /etc/supervisor/conf.d/*.conf. Eso hace que la instalación y el mantenimiento sean mucho más fáciles.
fuente
supervisorctltarea sigue fallando porque no puede hacer referencia / encontrar elprogram:process. Esto parece ser un problema en este módulo Ansible (y sí, no coloco mis definiciones de programa dentrosupervisord.confy se cargan desdeconfarchivos externos ). Al final fui con un simple comando Ansible, pasando por alto el módulo Supervisor por completo:command: supervisorctl -c /etc/supervisor/supervisord.conf restarty esto funciona perfectamente.-cFunciona sin el @luke?