diff --git a/test-playbooks/container/test-build-container-image-release.yaml b/test-playbooks/container/test-build-container-image-release.yaml
index ab22a39b6..a5b7a4e66 100644
--- a/test-playbooks/container/test-build-container-image-release.yaml
+++ b/test-playbooks/container/test-build-container-image-release.yaml
@@ -41,7 +41,8 @@
         zuul: "{{ new_zuul }}"
         docker_images: "{{ multiarch | ternary(_arch_docker_images, _normal_docker_images) }}"
 
-    - include_role:
+    - name: "Upload container image"
+      include_role:
         name: "upload-{{ (container_command == 'docker') | ternary('docker', 'container') }}-image"
       vars:
         zuul: "{{ new_zuul }}"
diff --git a/test-playbooks/general/fetch-translation-output.yaml b/test-playbooks/general/fetch-translation-output.yaml
index 100bd914c..630287a58 100644
--- a/test-playbooks/general/fetch-translation-output.yaml
+++ b/test-playbooks/general/fetch-translation-output.yaml
@@ -1,7 +1,8 @@
 - hosts: all
   pre_tasks:
     # Run ensure-output-dirs now as it is not performed speculatively
-    - import_role:
+    - name: Run ensure-output-dirs
+      import_role:
         name: ensure-output-dirs
 
     - name: Create fake translation
@@ -10,10 +11,12 @@
         echo Hello > src/{{ zuul.project.canonical_name }}/translation-source/test
 
   tasks:
-    - import_role:
+    - name: Run fetch-translation-output
+      import_role:
         name: fetch-translation-output
 
-    - import_role:
+    - name: Run fetch-output
+      import_role:
         name: fetch-output
       when: zuul_use_fetch_output
 
diff --git a/test-playbooks/intercept-job.yaml b/test-playbooks/intercept-job.yaml
index 5f544d78c..98c56565f 100644
--- a/test-playbooks/intercept-job.yaml
+++ b/test-playbooks/intercept-job.yaml
@@ -13,21 +13,26 @@
       async: 120
       poll: 0
       register: touched_file
-    - async_status:
+    - name: Set async status
+      async_status:
         jid: "{{ keygen.ansible_job_id }}"
       register: keygen_check
       until: keygen_check.finished == 1
       retries: 2
-    - include_role:
+    - name: Run intercept-job
+      include_role:
         name: intercept-job
-    - async_status:
+    - name: Set async status
+      async_status:
         jid: "{{ touched_file.ansible_job_id }}"
       register: touched_file_check
       until: touched_file_check.finished == 1
       retries: 3
-    - stat:
+    - name: Stat job stop
+      stat:
         path: "{{ zuul.project.src_dir }}/intercept_job.stop"
       register: stop_waiting
-    - assert:
+    - name: Look for failures
+      assert:
         that:
           - stop_waiting.stat.exists
diff --git a/test-playbooks/javascripts/fetch-javascript-tarball.yaml b/test-playbooks/javascripts/fetch-javascript-tarball.yaml
index c8de86b94..1f1970b38 100644
--- a/test-playbooks/javascripts/fetch-javascript-tarball.yaml
+++ b/test-playbooks/javascripts/fetch-javascript-tarball.yaml
@@ -7,11 +7,13 @@
       args:
         warn: false
   tasks:
-    - import_role:
+    - name: Run fetch-javascript-tarball
+      import_role:
         name: fetch-javascript-tarball
       vars:
         project_ver: master
-    - import_role:
+    - name: Run fetch-output
+      import_role:
         name: fetch-output
       when: zuul_use_fetch_output
   post_tasks:
diff --git a/test-playbooks/multinode/multi-node-bridge.yaml b/test-playbooks/multinode/multi-node-bridge.yaml
index c79e9d252..f408e5659 100644
--- a/test-playbooks/multinode/multi-node-bridge.yaml
+++ b/test-playbooks/multinode/multi-node-bridge.yaml
@@ -5,7 +5,8 @@
   roles:
     - multi-node-bridge
   post_tasks:
-    - become: yes
+    - name: Check openvswitch
+      become: yes
       block:
         - name: openvswitch should be installed
           package:
diff --git a/test-playbooks/multinode/multi-node-firewall.yaml b/test-playbooks/multinode/multi-node-firewall.yaml
index fcb9c0d10..c98d2cdab 100644
--- a/test-playbooks/multinode/multi-node-firewall.yaml
+++ b/test-playbooks/multinode/multi-node-firewall.yaml
@@ -27,7 +27,8 @@
         - hostvars[item]['nodepool']['public_ipv4']
 
     # ipv6_addresses is set by the multi-node-firewall role
-    - when: ipv6_addresses | length > 0
+    - name: check ipv6_addresses
+      when: ipv6_addresses | length > 0
       block:
         - name: switch and peer nodes should be in the ipv6 firewall
           become: yes
diff --git a/test-playbooks/multinode/persistent-firewall.yaml b/test-playbooks/multinode/persistent-firewall.yaml
index 1729f7f8a..51ff9e0e0 100644
--- a/test-playbooks/multinode/persistent-firewall.yaml
+++ b/test-playbooks/multinode/persistent-firewall.yaml
@@ -79,7 +79,8 @@
       with_items: "{{ groups['all'] }}"
 
     # ipv6_addresses is set by the multi-node-firewall role
-    - when: ipv6_addresses | length > 0
+    - name: check ipv6_addresses
+      when: ipv6_addresses | length > 0
       block:
         - name: switch and peer nodes should be in the ipv6 firewall
           become: yes
diff --git a/test-playbooks/python/fetch-sphinx-output.yaml b/test-playbooks/python/fetch-sphinx-output.yaml
index 344542cee..00fd37f69 100644
--- a/test-playbooks/python/fetch-sphinx-output.yaml
+++ b/test-playbooks/python/fetch-sphinx-output.yaml
@@ -1,7 +1,8 @@
 - hosts: all
   pre_tasks:
     # Run ensure-output-dirs now as it is not performed speculatively
-    - import_role:
+    - name: Run ensure-output-dirs
+      import_role:
         name: ensure-output-dirs
 
     - name: Create fake sphinx output
@@ -12,10 +13,12 @@
         warn: false
 
   tasks:
-    - import_role:
+    - name: Run fetch-sphinx-output
+      import_role:
         name: fetch-sphinx-output
 
-    - import_role:
+    - name: Run fetch-output
+      import_role:
         name: fetch-output
       when: zuul_use_fetch_output
 
diff --git a/test-playbooks/python/fetch-sphinx-tarball.yaml b/test-playbooks/python/fetch-sphinx-tarball.yaml
index e5292c9d5..58a290c23 100644
--- a/test-playbooks/python/fetch-sphinx-tarball.yaml
+++ b/test-playbooks/python/fetch-sphinx-tarball.yaml
@@ -1,7 +1,8 @@
 - hosts: all
   pre_tasks:
     # Run ensure-output-dirs now as it is not performed speculatively
-    - import_role:
+    - name: Run ensure-output-dirs
+      import_role:
         name: ensure-output-dirs
 
     # This simulates the operation of something like "tox -e docs" in
@@ -33,13 +34,15 @@
     #  {{ ansible_user_dir }}/zuul-output/logs/ and extracted into
     #  zuul-output/logs/<docs|pdf> on the host.  They need to be brought back
     #  to the executor using fetch-output
-    - import_role:
+    - name: Run fetch-sphinx-tarball
+      import_role:
         name: fetch-sphinx-tarball
 
     # This copies files from the remote host;
     #  - zuul-output/logs is copied into the zuul.executor.log_root
     #  - zuul-output/<artifacts|docs> is copied into zuul.executor.work_root
-    - import_role:
+    - name: Run fetch-output
+      import_role:
         name: fetch-output
       when: zuul_use_fetch_output
 
diff --git a/test-playbooks/python/fetch-subunit-output.yaml b/test-playbooks/python/fetch-subunit-output.yaml
index 5926db80f..220ff4a9a 100644
--- a/test-playbooks/python/fetch-subunit-output.yaml
+++ b/test-playbooks/python/fetch-subunit-output.yaml
@@ -1,7 +1,8 @@
 - hosts: all
   pre_tasks:
     # Run ensure-output-dirs now as it is not performed speculatively
-    - import_role:
+    - name: Run ensure-output-dirs
+      import_role:
         name: ensure-output-dirs
 
     - name: Create fake test directory
@@ -48,10 +49,12 @@
         - tox
 
   tasks:
-    - import_role:
+    - name: Run fetch-subunit-output
+      import_role:
         name: fetch-subunit-output
 
-    - import_role:
+    - name: Run fetch-output
+      import_role:
         name: fetch-output
       when: zuul_use_fetch_output
 
diff --git a/test-playbooks/python/fetch-tox-output.yaml b/test-playbooks/python/fetch-tox-output.yaml
index 70fa0210f..3aabd4194 100644
--- a/test-playbooks/python/fetch-tox-output.yaml
+++ b/test-playbooks/python/fetch-tox-output.yaml
@@ -1,7 +1,8 @@
 - hosts: all
   pre_tasks:
     # Run ensure-output-dirs now as it is not performed speculatively
-    - import_role:
+    - name: Run ensure-output-dirs
+      import_role:
         name: ensure-output-dirs
 
     - name: Simplify tox config
@@ -36,12 +37,14 @@
         - tox
 
   tasks:
-    - import_role:
+    - name: Run fetch-tox-output
+      import_role:
         name: fetch-tox-output
       vars:
         tox_envlist: "ALL"
 
-    - block:
+    - name: Fetch the output
+      block:
         - name: Undo the log_path fact set by fetch-javascript-output
           set_fact:
             log_path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
@@ -52,7 +55,8 @@
             log_path: "{{ zuul.executor.log_root }}"
           when: groups['all'] | length == 1
 
-        - import_role:
+        - name: Run fetch-output
+          import_role:
             name: fetch-output
       when: zuul_use_fetch_output
 
diff --git a/test-playbooks/python/tox.yaml b/test-playbooks/python/tox.yaml
index ba0e59b8c..512d88fa3 100644
--- a/test-playbooks/python/tox.yaml
+++ b/test-playbooks/python/tox.yaml
@@ -28,7 +28,8 @@
       tempfile:
       register: default_tempfile
 
-    - block:
+    - name: Run tox
+      block:
         - name: Run tox with empty envlist
           include_role:
             name: tox
@@ -51,7 +52,8 @@
             state: absent
             path: "{{ default_tempfile.path }}"
 
-    - block:
+    - name: Check testenvs output
+      block:
         - name: Create tempfile to verify testenvs ran
           tempfile:
           register: ALL_tempfile
diff --git a/test-playbooks/rust/ensure-rust.yaml b/test-playbooks/rust/ensure-rust.yaml
index a969cea5d..26bb42254 100644
--- a/test-playbooks/rust/ensure-rust.yaml
+++ b/test-playbooks/rust/ensure-rust.yaml
@@ -1,7 +1,8 @@
 - hosts: all
   tasks:
 
-    - include_role:
+    - name: Run ensure-rust
+      include_role:
         name: ensure-rust
 
     - name: Test cargo run
diff --git a/test-playbooks/update-json-file.yaml b/test-playbooks/update-json-file.yaml
index 40a464348..42b2b4b70 100644
--- a/test-playbooks/update-json-file.yaml
+++ b/test-playbooks/update-json-file.yaml
@@ -1,7 +1,8 @@
 - hosts: all
   tasks:
 
-    - include_role:
+    - name: Run update-json-file
+      include_role:
         name: update-json-file
       vars:
         update_json_file_name: some/test.json
@@ -11,7 +12,8 @@
           moo: boo
         update_json_file_debug: true
 
-    - include_role:
+    - name: Run update-json-file again
+      include_role:
         name: update-json-file
       vars:
         update_json_file_name: some/test.json
@@ -32,7 +34,8 @@
       set_fact:
         _config: "{{ _file.content | b64decode | from_json }}"
 
-    - assert:
+    - name: Check output
+      assert:
         that:
           - _config['foo'] == 'bar'
           - _config['moo'] == 'boo'