Ansible supervisorctl,州与州之间的区别重新启动'并且'呈现'

时间:2016-03-31 16:44:39

标签: ansible ansible-playbook supervisord

我正在为生产环境和登台环境(恰好位于同一服务器中)部署Django应用程序。为了做到这一点,我为两个环境运行supervisord两个不同的进程。

因此,在我的ansible-playbook中,我模拟了我的uwsgi配置(根据环境变量)并将其复制到/etc/supervisor/conf.d文件夹。

假设我想第一次部署到新的临时环境。由于目前没有配置文件,我需要supervisorctl rereadsupervisorctl update

当我从docs阅读时:

  

state = present时,如果程序/组不存在,模块将调用supervisorctl reread然后调用supervisorctl add

     

state = restarted时,模块会拨打supervisorctl update,然后拨打supervisorctl restart

但这是否意味着如果我想支持新的暂存实例和我当前的实例,我需要调用它们?或者仅仅使用state=restarted就足够了?或者我做错了什么?

这段代码可以吗?或者它是否重复了一些信息?

    - name: Add uwsgi app (reread + add)
      become: yes
      supervisorctl: name={{uwsgi_app}} state=present

    - name: Start uwsgi app (update + restart)
      become: yes
      supervisorctl: name={{uwsgi_app}} state=restarted

1 个答案:

答案 0 :(得分:2)

您需要通过添加一行来调用两者或在应用程序配置文件中设置(在/etc/supervisor/conf.d中设置的文件)for the application to start automatically

autostart: true

虽然默认情况下是这样,但我更喜欢明确。