- hosts: all
  gather_facts: yes
  tasks:
  - block:
      - debug: msg="this is the first task"
      - fail:
        when: inventory_hostname == "l2"
      - debug: msg="only l1 and l3 should see me"
    rescue:
      - debug: msg="this is the rescue"
      - command: /bin/false
      - debug: msg="no host should see this run"
    always:
      - debug: msg="this is the always block, it will always be seen"
    when: foo|default('') != "some value"
    tags:
      - foo
      - bar
  - debug: msg="you should only see l1 and l3 run this"