Luk*_*uke 8 supervisord ansible
我正在尝试通过我的 Ansible Playbook 重新启动 Supervisor,但我似乎遇到了 Ansible 主管模块的问题。
在我的主管配置中,我定义了一个程序:
[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
Run Code Online (Sandbox Code Playgroud)
这工作正常。但是,当我尝试通过 Ansible 重新启动 Supervisor 时,出现以下错误:
failed: [box1] => {"failed": true}
msg: program:process: ERROR (no such process)
program:process: ERROR (no such process)
Run Code Online (Sandbox Code Playgroud)
我的 Ansible 任务配置如下所示:
- name: Restart Supervisor
sudo: yes
supervisorctl: name=program:process state=restarted config=/etc/supervisor/supervisord.conf
Run Code Online (Sandbox Code Playgroud)
对于name
参数我都试过program:process
,program
,program:
和process
,但似乎没有工作。我目前在 Ansible 1.5.4 上。
该supervisorctl
Ansible模块不支持的reload
命令(见这里),这是需要主管拿起新的配置项。
你可以像这样自己做:
- command: supervisorctl reread
sudo: yes
- supervisorctl: name=program:process state=restarted config=/etc/supervisor/supervisord.conf
sudo: yes
Run Code Online (Sandbox Code Playgroud)
reload/reread/update/restart 的文档好像不见了,这篇博文已经过时了;您可以进行试验以确保reload
符合您的预期。
最后,不要把你的程序定义放在 supervisord.conf 中。相反,将它们作为单独的文件放在 /etc/supervisor/conf.d/*.conf 中。这使得安装和维护更加容易。
归档时间: |
|
查看次数: |
7040 次 |
最近记录: |