Ansible服务模块没有启动supervisor状态重启

时间:2017-05-24 21:10:44

标签: ansible

我有一个ansible处理程序来重启主管

---
- name: 'restart supervisor'
  become: true
  service:
    name: supervisor
    enabled: yes
    state: restarted

处理程序运行但输出为skipping

RUNNING HANDLER [supervisor : restart supervisor] *******************
skipping: [redacted]

通知发生在服务器的初始配置上,因此当处理程序触发时,主管不会运行。这是为什么它没有重新启动?如果我进入框中并在服务未运行时手动运行sudo service supervisor restart,则启动就可以了。

我甚至试过像这样的start supervisor处理程序,它做了同样的事情......跳过和主管从未开始过?

---
- name: 'start supervisor'
  become: true
  service:
    name: supervisor
    enabled: yes
    state: started

我正在运行v2.3.0.0-1但是使用v2.2.2.0也遇到了这个问题。

有没有其他人与主管讨论过这个问题?有替代方法吗?我做错了吗?

- 更新 -

有一个when子句正在应用该角色,因此我决定删除它以查看它是否是罪魁祸首。再次跳过......这是输出。

RUNNING HANDLER [supervisor : restart supervisor] ******************************************************************************************************************************************************
skipping: [ansible1] => {
    "changed": false, 
    "skip_reason": "Conditional result was False", 
    "skipped": true
}

如果ansible会告诉我导致它跳过的条件会很好,因为在删除when后,我的ansible代码中没有任何理由会导致它跳过。 service模块内部必须存在导致此内容的内容:s

2 个答案:

答案 0 :(得分:1)

处理程序是依赖角色的一部分吗? (即:定义处理程序的角色作为meta / main.yml中的依赖项包含在您的角色中)。因为我已经看到了这种情况并且发生了同样奇怪的"skip_reason": "Conditional result was False",。更改从meta/main.yml:dependenciesplaybook.yml:roles的相关角色的方式使其有效。

如果拥有处理程序的角色作为playbook.yml:roles包含的角色的元依赖项包含在内,我也看到它有效。

不确定这是一个我无法理解的错误或棘手的行为。这发生在Ansible-playbook 2.3.2.0

答案 1 :(得分:0)

服务模块不会使用restart选项调用服务脚本,但会启动和停止。主管服务脚本是否具有状态选项?如果无法获取状态,则可能根本不运行restart命令。