我正在学习 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
他跳过了通知:
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
答案1
处理程序只会针对报告状态的任务触发changed
。在剧本的输出中,您可以看到状态为ok
,在这种情况下,这意味着没有安装或更新任何新软件包(因为 state=latest)
因此,如果任何软件包尚未安装,它就会工作。
started
但是,我会使用state 而不是state restarted
,因为您总是在升级任务中的最新软件包(state=latest)如果软件包更新,您也应该重新启动服务。