diff --git a/zabbix-repo/files/check-update.py b/zabbix-repo/files/check-update.py
new file mode 100644
index 0000000000000000000000000000000000000000..8fdccd93e0ab3cbf24429bf06326ce556d4372c9
--- /dev/null
+++ b/zabbix-repo/files/check-update.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python3
+
+import urllib.request
+import re
+
+PATTERN = r'<a\shref="(?P<link>\d\.\d/)">(?P<version>\d\.\d)/</a>\s+(?P<date>\d{2}-[A-Z][a-z]{2}-\d{4} \d{2}:\d{2})\s+-'
+
+def get_versions():
+    response = urllib.request.urlopen("https://repo.zabbix.com/zabbix/")
+    page_content = response.read().decode("utf-8")
+    for match in re.findall(PATTERN, page_content):
+        link, version, date = match
+        major, minor = map(int, version.split("."))
+        if minor % 2 == 0:
+            yield (major, minor), date
+
+
+def main():
+    import sys
+    current_version = sys.argv[1]
+    current_major, current_minor = map(int, current_version.split("."))
+    highest_version, date = sorted(get_versions())[-1]
+    if (current_major, current_minor) < highest_version:
+        print(
+            "New Zabbix version is available: {} from {}, please upgrade!".format(
+                '.'.join(map(str, highest_version)),
+                date))
+
+if __name__ == "__main__":
+    main()
diff --git a/zabbix-repo/tasks/main.yml b/zabbix-repo/tasks/main.yml
index d4a5af958e6faaeba87c107edfa6c0f1d413d05d..248aff1f997fcd0db94e3f4e686926193257b32e 100644
--- a/zabbix-repo/tasks/main.yml
+++ b/zabbix-repo/tasks/main.yml
@@ -17,9 +17,9 @@
     repo: "{{ item }}"
     state: absent
   with_items:
-    - 'deb http://repo.zabbix.com/zabbix/3.0/debian {{ debian_version }} main'
+    - 'deb http://repo.zabbix.com/zabbix/{{old_zabbix_version}}/debian {{ debian_version }} main'
     # yamllint disable-line rule:line-length
-    - 'deb-src http://repo.zabbix.com/zabbix/3.0/debian {{ debian_version }} main'
+    - 'deb-src http://repo.zabbix.com/zabbix/{{old_zabbix_version}}/debian {{ debian_version }} main'
   notify:
     - update apt cache
   tags:
@@ -31,9 +31,9 @@
     repo: "{{ item }}"
     state: present
   with_items:
-    - 'deb http://repo.zabbix.com/zabbix/3.4/debian {{ debian_version }} main'
+    - 'deb http://repo.zabbix.com/zabbix/{{zabbix_version}}/debian {{ debian_version }} main'
     # yamllint disable-line rule:line-length
-    - 'deb-src http://repo.zabbix.com/zabbix/3.4/debian {{debian_version }} main'
+    - 'deb-src http://repo.zabbix.com/zabbix/{{zabbix_version}}/debian {{debian_version }} main'
   notify:
     - update apt cache
   tags:
@@ -64,4 +64,32 @@
     - zabbix
     - chr
 
+- name: query installed packages
+  package_facts:
+  register: installed_packages
+  tags:
+    - repos
+    - zabbix
+
+- name: check for new packages
+  block:
+    - name: upload the version check script
+      copy:
+        src: check-update.py
+        dest: "/usr/local/sbin/check-update.py"
+        owner: root
+        group: root
+        mode: '0755'
+    - name: ensure the version check script is executed regularly
+      template:
+        src: crontab.j2
+        dest: /etc/cron.d/check-zabbix-version
+        owner: root
+        group: root
+        mode: '0644'
+  when: '"zabbix-server-pgsql" in installed_packages.ansible_facts.packages'
+  tags:
+    - repos
+    - zabbix
+
 - meta: flush_handlers
diff --git a/zabbix-repo/templates/crontab.j2 b/zabbix-repo/templates/crontab.j2
new file mode 100644
index 0000000000000000000000000000000000000000..3e846570f20b2248f2a71fc6892acab4701ca425
--- /dev/null
+++ b/zabbix-repo/templates/crontab.j2
@@ -0,0 +1 @@
+{{60|random(seed=inventory_hostname)}} {{6|random(seed=inventory_hostname)}} * * * root /usr/local/sbin/check-update.py {{zabbix_version}}
diff --git a/zabbix-repo/vars/main.yml b/zabbix-repo/vars/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..443d97049bc9d7ff53f73646395b38cb47a8fddf
--- /dev/null
+++ b/zabbix-repo/vars/main.yml
@@ -0,0 +1,4 @@
+---
+
+old_zabbix_version: "3.4"
+zabbix_version: "4.0"