Ansible很难重新启动主pipe

我试图通过我的Ansible Playbook重新启动Supervisor,但是我似乎正在为Ansible的Supervisor模块陷入一个问题。

在我的Supervisorconfiguration中,我定义了一个程序:

[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任务configuration如下所示:

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

对于name参数我试过program:processprogramprogram:process但似乎没有工作。 我目前在Ansible 1.5.4上。

supervisorctl Ansible模块不支持reload命令( 请参见此处 ),supervisor需要这些命令才能获取新的configuration条目。

你可以这样做自己:

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

重新加载/重新读/更新/重新启动的文档似乎缺less, 这篇博文是过时的 ; 您可以尝试确保reload符合您的期望。

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