web-dev-qa-db-ja.com

なぜansible notifyが機能しないのですか?

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

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

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

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

23
udondan