Я пытаюсь перезапустить Supervisor через мою Ansible Playbook, но мне кажется, что я сталкиваюсь с проблемой с модулем Supervisor для Ansible.
В моем конфиге Supervisor я определил программу:
[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
И это прекрасно работает. Однако, когда я пытаюсь перезапустить Supervisor через Ansible, я получаю следующую ошибку:
failed: [box1] => {"failed": true}
msg: program:process: ERROR (no such process)
program:process: ERROR (no such process)
Моя конфигурация Ansible задачи выглядит так:
- name: Restart Supervisor
sudo: yes
supervisorctl: name=program:process state=restarted config=/etc/supervisor/supervisord.conf
Для name
параметра я пытался program:process
, program
, program:
и , process
но никто не похоже на работу. Я в настоящее время на Ansible 1.5.4.
Ответы:
Модуль
supervisorctl
Ansible не поддерживаетreload
команду ( см. Здесь ), которая необходима супервизору для получения новых записей конфигурации.Вы можете сделать это самостоятельно так:
Документация по перезагрузке / перечитыванию / обновлению / перезапуску, кажется, отсутствует, и это сообщение в блоге устарело ; Вы можете экспериментировать, чтобы убедиться, что
reload
делает то, что вы ожидаете.Наконец, не помещайте определения вашей программы в supervisord.conf . Вместо этого поместите их как отдельные файлы в /etc/supervisor/conf.d/*.conf. Это значительно облегчает установку и обслуживание.
источник
supervisorctl
Задача еще не удается , потому что он не может ссылаться / найтиprogram:process
. Кажется, это проблема в этом модуле Ansible (и да, я не помещаю свои определения программ внутрь,supervisord.conf
а они загружаются из внешнихconf
файлов). В конце концов, я пошел с простой командой Ansible, полностью обойдя модуль Supervisor:command: supervisorctl -c /etc/supervisor/supervisord.conf restart
и это работает отлично.-c
@luke?