diff --git a/monitoring.yml b/monitoring.yml
index 87fcc5854e20704a6bc44dca38d9d5fe150a85a8..759e121d5c32788b583921c27f6548d02382c456 100644
--- a/monitoring.yml
+++ b/monitoring.yml
@@ -30,7 +30,10 @@
     prometheus_snmp_targets:
       - targets:
           - pulsar.adm.crans.org
+    # Debian non-free mirror
+    debian_mirror: http://ftp.adm.crans.org/debian/
   roles:
+    - debian-non-free
     - prometheus
     - prometheus-alertmanager
 
diff --git a/roles/debian-non-free/tasks/main.yml b/roles/debian-non-free/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1cea26783aef0688c738d59131cbf9664602c123
--- /dev/null
+++ b/roles/debian-non-free/tasks/main.yml
@@ -0,0 +1,5 @@
+---
+- name: Add Debian non-free repository
+  apt_repository:
+    repo: deb {{ debian_mirror }} {{ ansible_lsb.codename }} non-free
+    state: present
diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml
index 1369e934fadba9825c1bcd54cad8712599b91ff3..12151282d94fbe9bc31371018875530422a58f03 100644
--- a/roles/prometheus/tasks/main.yml
+++ b/roles/prometheus/tasks/main.yml
@@ -5,6 +5,7 @@
     name:
       - prometheus
       - prometheus-snmp-exporter
+      - snmp-mibs-downloader  # To generate SNMP configuration
   register: apt_result
   retries: 3
   until: apt_result is succeeded