diff --git a/README.md b/README.md
index bf58a8e4172b6b0894e81da1252c2273b21d1f03..eb3a657d0da35fee7e6c1df4930260a3b518a9ea 100644
--- a/README.md
+++ b/README.md
@@ -128,6 +128,23 @@ The following steps should be used to update our managed servers:
   * checkservices
   * reboot
 
+##### Semi-automated server updates (experimental)
+
+For updating a lot of servers in a more unattended manner, the following
+playbook can be used:
+
+    ansible-playbook playbooks/tasks/upgrade-servers.yml [-l SUBSET]
+
+It runs `pacman -Syu` on the targeted hosts in batches and then reboots them.
+If any server fails to reboot successfully, the rolling update stops and
+further batches are cancelled. To display the packages updated on each host,
+you can pass the `--diff` option to ansible-playbook.
+
+Using this update method, `.pacnew` files are left unmerged which is OK for
+most configuration files that are managed by Ansible. However, care must be
+taken with updates that require manual intervention (e.g. major PostgreSQL
+releases).
+
 ## Servers
 
 This section has been moved to [docs/servers.md](docs/servers.md).