ansible通知が機能しないのはなぜですか?


12

私は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

回答:


22

ハンドラーは、changed状態を報告するタスクに対してのみ起動されます。プレイの出力では、ステータスがokであることがわかります。この場合、新しいパッケージがインストールまたは更新されていないことを意味します(state = latest以降)。

そのため、パッケージのいずれかがまだインストールされていなかった場合に機能します。

ただし、stateの代わりにstate startedを使用restartedします。タスクの常に最新のパッケージ(state = latest)にアップグレードするため、パッケージが更新された場合は、サービスも再起動する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.