为什么 ansible notify 不起作用?

aka*_*kin 14 ansible ansible-playbook

我正在学习 ansible 并编写了简单的剧本,但我不明白或者我做错了什么处理程序不起作用!请帮我。

我的剧本:

- hosts: HA
  gather_facts: False
  tasks:
    - name: Installs pacemaker
      yum: pkg=pacemaker,pcs,resource-agents state=latest
      notify:
         - pcsd start

  handlers:
    - name: pcsd start
      systemd: name=pcsd state=started
Run Code Online (Sandbox Code Playgroud)

他跳过通知:

PLAY [HA] **********************************************************************

TASK [Installs pacemaker] ******************************************************
ok: [test-ha2]
ok: [test-ha1]

PLAY RECAP *********************************************************************
test-ha1                   : ok=1    changed=0    unreachable=0    failed=0
test-ha2                   : ok=1    changed=0    unreachable=0    failed=0
Run Code Online (Sandbox Code Playgroud)

udo*_*dan 26

处理程序只会为报告changed状态的任务触发。在您的播放输出中,您可以看到 status is ok,在这种情况下,这意味着没有安装或更新新的软件包(因为 state=latest)

因此,如果尚未安装任何软件包,它将起作用。

但是,started我会使用 state而不是state restarted,因为您总是在任务中升级到最新的包 (state=latest) 如果包更新,您还应该重新启动服务。