以下の記事の通りでも実現できますが、世間的には notify handlers を使うのが一般的なようです
それだけなんですが、日本語の記事を見つけられなかったので書いておきます
たぶんどこかにあるんでしょうが、changed_when:
とかshell:
の話に埋もれて発見できず…
具体例
タイムゾーンを Asia/Tokyo に合わせ、タイムゾーンの変更があった時だけ crond を再起動する
- hosts: xxxx
user: xxxx
become: yes
tasks:
- timezone:
name: Asia/Tokyo
register: set_timezone
- when: set_timezone.changed
systemd:
state: restarted
name: cron
タイムゾーンが元から Asia/Tokyo の場合は cron の再起動はスキップされます
register で task の実行結果情報を受け取るところがミソです
register については他の方の記事をどーぞ