現在Ansibleであるソフトをインストールするroleを書いているのですが、もしインストールされていれば後続のロールの処理をスキップする、というような処理を書きたいです。

これは私の知る方法では、まずインストールされているかどうかをチェックしてその結果を変数に入れる。その後、後続の処理全てにwhenを書けばできなくはないと思います。
しかしこの方法は後続の処理全てにwhenを書かなければいけないため、もっと良い方法がないか悩んでいます。

全てにwhenを書いた場合の例を書くと、

- name: Is hoge Installed?
  shell: type hoge
  failed_when: false
  changed_when: result.rc not in [0]
  register: result

- name: a
  when: result.changed

- name: b
  when: result.changed

- name: c
  when: result.changed

...

このような感じになってしまいます。

他に良い方法はないでしょうか?
ご回答お待ちしております。