diff --git a/roles/rebuilderd_worker/files/clean-repro b/roles/rebuilderd_worker/files/clean-repro
new file mode 100644
index 0000000000000000000000000000000000000000..f07b3376942e8fbcdb1aa20fc437fdfc6e3ffa3f
--- /dev/null
+++ b/roles/rebuilderd_worker/files/clean-repro
@@ -0,0 +1,3 @@
+#!/bin/bash -e
+
+find /var/lib/repro -maxdepth 1 -name '*?_?*' -mtime +6 -exec rm -rf {} +
diff --git a/roles/rebuilderd_worker/files/clean-repro.service b/roles/rebuilderd_worker/files/clean-repro.service
new file mode 100644
index 0000000000000000000000000000000000000000..dc89c54f693f69902b7e0629cd6696882e9351ac
--- /dev/null
+++ b/roles/rebuilderd_worker/files/clean-repro.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Clean up stale repro chroots
+ConditionPathExists=/var/lib/repro
+
+[Service]
+Type=oneshot
+ExecStart=/usr/local/bin/clean-repro
+Nice=19
+IOSchedulingClass=best-effort
+IOSchedulingPriority=7
diff --git a/roles/rebuilderd_worker/files/clean-repro.timer b/roles/rebuilderd_worker/files/clean-repro.timer
new file mode 100644
index 0000000000000000000000000000000000000000..cfa6d2438ea80ad735acb51fb1b205ee1bae097a
--- /dev/null
+++ b/roles/rebuilderd_worker/files/clean-repro.timer
@@ -0,0 +1,10 @@
+[Unit]
+Description=Daily repro cleanup
+
+[Timer]
+OnCalendar=daily
+RandomizedDelaySec=12h
+Persistent=true
+
+[Install]
+WantedBy=timers.target
diff --git a/roles/rebuilderd_worker/handlers/main.yml b/roles/rebuilderd_worker/handlers/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..039b2657143ca4384474de52d23dd8fc750d142a
--- /dev/null
+++ b/roles/rebuilderd_worker/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+
+- name: daemon reload
+  systemd:
+    daemon-reload: true
diff --git a/roles/rebuilderd_worker/tasks/main.yml b/roles/rebuilderd_worker/tasks/main.yml
index 37962959706efd06e14684b3b656d621256a11f8..c838137a4c96f1012e4153de0670f056312934d3 100644
--- a/roles/rebuilderd_worker/tasks/main.yml
+++ b/roles/rebuilderd_worker/tasks/main.yml
@@ -13,3 +13,17 @@
 - name: enable and start rebuilderd-worker@{{ item }}
   systemd: name=rebuilderd-worker@{{ item }} enabled=yes state=started
   with_items: '{{ rebuilderd_workers }}'
+
+- name: install cleanup script
+  copy: src=clean-repro dest=/usr/local/bin/clean-repro owner=root group=root mode=0755
+
+- name: install cleanup units
+  copy: src={{ item }} dest=/etc/systemd/system/{{ item }} owner=root group=root mode=0644
+  loop:
+    - clean-repro.timer
+    - clean-repro.service
+  notify:
+    - daemon reload
+
+- name: start and enable cleanup timer
+  service: name=clean-repro.timer enabled=yes state=started