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 name
parámetro He tratado program:process
, program
, program:
y process
pero ninguno parece funcionar. Actualmente estoy en Ansible 1.5.4.
ansible
supervisord
Luke
fuente
fuente
Respuestas:
El
supervisorctl
módulo Ansible no admite elreload
comando ( 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
reload
hace 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
supervisorctl
tarea 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.conf
y se cargan desdeconf
archivos 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 restart
y esto funciona perfectamente.-c
Funciona sin el @luke?