diff --git a/files/linstor-client.conf b/files/linstor-client.conf
new file mode 100644
index 0000000000000000000000000000000000000000..e9e805a1c8937766b584923c65a3599d88d8493b
--- /dev/null
+++ b/files/linstor-client.conf
@@ -0,0 +1,2 @@
+[global]
+controllers=10.0.42.101,10.0.42.102,10.0.42.103
diff --git a/files/linstor_db.toml b/files/linstor_db.toml
new file mode 100644
index 0000000000000000000000000000000000000000..53b030bf8e79e09705c593ae6b6dcce9b2e9020b
--- /dev/null
+++ b/files/linstor_db.toml
@@ -0,0 +1,4 @@
+[[promoter]]
+id = "linstor_db"
+[promoter.resources.linstor_db]
+start = ["var-lib-linstor.mount", "linstor-controller.service"]
diff --git a/files/override.conf b/files/override.conf
new file mode 100644
index 0000000000000000000000000000000000000000..064bac4319ec6d322c870352e404930e4b665dda
--- /dev/null
+++ b/files/override.conf
@@ -0,0 +1,5 @@
+[Service]
+Environment=LS_KEEP_RES=linstor_db
+Type=notify
+TimeoutStartSec=infinity
+
diff --git a/files/var-lib-linstor.mount b/files/var-lib-linstor.mount
new file mode 100644
index 0000000000000000000000000000000000000000..5f78133435ae292ddf7d543822aa96a5ecfaa5f4
--- /dev/null
+++ b/files/var-lib-linstor.mount
@@ -0,0 +1,7 @@
+[Unit]
+Description=Filesystem for the LINSTOR controller
+
+[Mount]
+# you can use the minor like /dev/drbdX or the udev symlink
+What=/dev/drbd/by-res/linstor_db/0
+Where=/var/lib/linstor
\ No newline at end of file
diff --git a/tasks/linstor-setup.yml b/tasks/linstor-setup.yml
index 8faae15ce213da6f807c1b3356e4707db06b2334..81120f943dd93ad777def709243378fc2ea42d91 100644
--- a/tasks/linstor-setup.yml
+++ b/tasks/linstor-setup.yml
@@ -17,6 +17,7 @@
       - linstor-satellite
       - linstor-client
       - linstor-proxmox
+      - drbd-reactor
     state: present
 
 - name: Enable linstor-satellite
@@ -28,5 +29,65 @@
 - name: Disable linstor-controller
   systemd:
     service: linstor-controller
-    state: stopped
-    enabled: no
\ No newline at end of file
+    enabled: no
+
+- name: copy latest binary of linstor-defaults
+  get_url:
+    url: https://git.sch.bme.hu/kszk/sysadmin/memory-storage-defaults/-/jobs/artifacts/master/raw/memory-defaults?job=build
+    dest: /usr/local/bin/memory-defaults
+    mode: 0755
+- name: copy linstor-defaults config
+  copy:
+    dest: /etc/memory-defaults.yaml
+    src: memory-defaults.yaml
+
+- name: add systemd unit 1
+  get_url:
+    url: https://git.sch.bme.hu/kszk/sysadmin/memory-storage-defaults/-/raw/master/systemd/memory-defaults.service
+    dest: /etc/systemd/system/memory-defaults.service
+
+- name: add systemd unit 2 (timer)
+  get_url:
+    url: https://git.sch.bme.hu/kszk/sysadmin/memory-storage-defaults/-/raw/master/systemd/memory-defaults.timer
+    dest: /etc/systemd/system/memory-defaults.timer
+
+- name: start systemd timer (unit 2)
+  systemd:
+    state: started
+    enabled: yes
+    name: memory-defaults.timer
+
+- name: create var-lib-linstor.mount
+  copy:
+    src: var-lib-linstor.mount
+    dest: /etc/systemd/system/var-lib-linstor.mount
+
+- name: copy linstor_db.toml
+  copy:
+    src: linstor_db.toml
+    dest: /etc/drbd-reactor.d/linstor_db.toml
+
+- name: create directory for override config so that the next task won't complain...
+  file:
+    path: /etc/systemd/system/linstor-satellite.service.d/
+    state: directory
+
+- name: copy systemd override for linstor-satellite
+  copy:
+    src: override.conf
+    dest: /etc/systemd/system/linstor-satellite.service.d/override.conf
+
+- name: Reload systemd daemon
+  systemd:
+    daemon_reload: yes
+
+- name: Enable and restart drbd-reactor
+  systemd:
+    name: drbd-reactor
+    state: restarted
+    enabled: yes
+
+- name: create linstor client config
+  copy:
+    src: linstor-client.conf
+    dest: /etc/linstor/linstor-client.conf