我试图通过我的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
这很好。但是,当我尝试通过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
,program:
和process
,但似乎没有工作。我目前正在使用Ansible 1.5.4。
1
首先要做的是更新Ansible。几乎没有理由为什么要使用这样的旧版本。
—
迈克尔·汉普顿
这是Ubuntu 14.04 LTS随附的即用型版本。我了解它有些过时,但是在Ansible手册中有关Supervisor模块的内容都没有表明我应该进行更新(除了我不感兴趣的组名之外)。当然,较新的版本可能已修复了一些错误,但是,我尝试的工作似乎很初级,因为没有最新版本应该能够处理它。
—
路加福音
我相当确定您为此需要Ansible 1.6或更高版本,因为那是在添加组支持时开始的。甚至Red Hat都在跟踪最新的稳定版本(它们目前在1.9.4上),所以我不知道在这里与Ubuntu有什么关系。当然,在Red Hat上,您可以只使用systemd而忽略所有这些主管内容。
—
迈克尔·汉普顿
别担心。这是我要使用的文档:docs.ansible.com/ansible/supervisorctl_module.html
—
路加福音
是的,这就是您需要1.6的页面!
—
Michael Hampton