Estou tentando reiniciar o Supervisor através do meu Ansible Playbook, mas parece que estou encontrando um problema com o módulo supervisor do Ansible.
Na minha configuração de supervisor, defini um 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
E isso funciona bem. No entanto, quando tento reiniciar o Supervisor através do Ansible, recebo o seguinte erro:
failed: [box1] => {"failed": true}
msg: program:process: ERROR (no such process)
program:process: ERROR (no such process)
Minha configuração de tarefa Ansible é assim:
- name: Restart Supervisor
sudo: yes
supervisorctl: name=program:process state=restarted config=/etc/supervisor/supervisord.conf
Para o name
parâmetro Eu tentei program:process
, program
, program:
e process
, mas nada parece funcionar. Atualmente, estou no Ansible 1.5.4.
ansible
supervisord
Lucas
fonte
fonte
Respostas:
O
supervisorctl
módulo Ansible não suporta oreload
comando ( veja aqui ), necessário para o supervisor pegar novas entradas de configuração.Você pode fazê-lo assim:
A documentação sobre recarregar / reler / atualizar / reiniciar parece estar ausente e esta postagem do blog está desatualizada ; você pode experimentar para garantir que
reload
faz o que espera.Por fim, não coloque suas definições de programa no supervisord.conf . Em vez disso, coloque-os como arquivos individuais em /etc/supervisor/conf.d/*.conf. Isso facilita muito a instalação e manutenção.
fonte
supervisorctl
tarefa ainda está falhando porque não pode fazer referência / encontrar o arquivoprogram:process
. Isso parece ser um problema neste módulo Ansible (e sim, eu não coloco minhas definições de programa dentro dosupervisord.conf
e elas são carregadas deconf
arquivos externos ). No final, eu segui um comando Ansible simples, ignorando completamente o módulo Supervisor:command: supervisorctl -c /etc/supervisor/supervisord.conf restart
e isso funciona perfeitamente.-c
@luke?