Ansible 无法重启 Supervisor

Ansible 无法重启 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

一切正常。但是,当我尝试通过 Ansible 重新启动 Supervisor 时,出现以下错误:

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,但似乎都不起作用。我目前使用的是 Ansible 1.5.4。program:process

答案1

Ansible模块supervisorctl不支持该reload命令(看这里),以便主管获取新的配置条目。

你可以自己做这样的事情:

- command: supervisorctl reread
  sudo: yes
- supervisorctl: name=program:process state=restarted config=/etc/supervisor/supervisord.conf
  sudo: yes

关于重新加载/重新读取/更新/重启的文档似乎缺失了,并且这篇博文已经过时了;您可以进行实验以确保reload其能够达到您的预期。

最后,不要将程序定义放在supervisord.conf中。相反,将它们作为单独的文件放在 /etc/supervisor/conf.d/*.conf 中。这使得安装和维护变得更加容易。

相关内容