diff --git a/roles-test/post.yaml b/roles-test/post.yaml
new file mode 100644
index 0000000000..c68266beef
--- /dev/null
+++ b/roles-test/post.yaml
@@ -0,0 +1,14 @@
+- hosts: localhost
+  tasks:
+    - name: Make log directories for testing hosts
+      file:
+        path: "{{ zuul.executor.log_root }}/{{ item }}/logs"
+        state: directory
+        recurse: true
+      loop: "{{ query('inventory_hostnames', 'all') }}"
+
+- hosts: all
+  tasks:
+    - include_role:
+        name: stage-output
+
diff --git a/zuul.d/system-config-roles.yaml b/zuul.d/system-config-roles.yaml
index 1a635de78f..a66b2fee0f 100644
--- a/zuul.d/system-config-roles.yaml
+++ b/zuul.d/system-config-roles.yaml
@@ -10,8 +10,18 @@
     abstract: true
     parent: base
     run: roles-test/base.yaml
+    post-run: roles-test/post.yaml
     files:
-      - roles/
+      - roles/puppet-install
+      - roles/openafs-client
+      - roles/kerberos-client
+    vars:
+      zuul_copy_output: "{{ copy_output | combine(host_copy_output | default({})) }}"
+      stage_dir: "{{ ansible_user_dir }}/zuul-output"
+      copy_output:
+        '/var/log/syslog': logs_txt
+        '/var/log/messages': logs_txt
+        '/var/log/openafs': logs
 
 - job:
     name: system-config-zuul-role-integration-xenial