私は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
ハンドラーは、changed
状態を報告するタスクに対してのみ発生します。プレイの出力で、ステータスがok
であることがわかります。これは、この場合、新しいパッケージがインストールまたは更新されていないことを意味します(state = latestなので)
そのため、パッケージのいずれかがまだインストールされていない場合でも機能します。
ただし、状態started
の代わりに、状態restarted
を使用します。これは、タスクで常に最新のパッケージにアップグレードしているためです(state = latest)パッケージが更新された場合は、再起動する必要もありますサービス。