diff --git a/ansible/roles/grafana/handlers/main.yml b/ansible/roles/grafana/handlers/main.yml
index 209152bf3e..58918dd996 100644
--- a/ansible/roles/grafana/handlers/main.yml
+++ b/ansible/roles/grafana/handlers/main.yml
@@ -19,3 +19,4 @@
     - config_json.changed | bool
       or grafana_conf.changed | bool
       or grafana_container.changed | bool
+      or grafana_home_dashboard.changed | bool
diff --git a/ansible/roles/grafana/tasks/config.yml b/ansible/roles/grafana/tasks/config.yml
index 4cb50c3760..13b0e51878 100644
--- a/ansible/roles/grafana/tasks/config.yml
+++ b/ansible/roles/grafana/tasks/config.yml
@@ -38,6 +38,20 @@
   notify:
     - Restart grafana container
 
+- name: Check if custom grafana home dashboard exists
+  local_action: "stat path={{ node_custom_config }}/grafana/grafana_home_dashboard.json"
+  register: grafana_custom_dashboard_file
+  run_once: True
+
+- name: Copying over grafana home dashboard if exists
+  template:
+    src: "{{ node_custom_config }}/grafana/grafana_home_dashboard.json"
+    dest: "{{ node_config_directory }}/grafana/grafana_home_dashboard.json"
+  register: grafana_home_dashboard
+  when: grafana_custom_dashboard_file.stat.exists
+  notify:
+    - Restart grafana container
+
 - name: Check grafana containers
   kolla_docker:
     action: "compare_container"
diff --git a/ansible/roles/grafana/templates/grafana.json.j2 b/ansible/roles/grafana/templates/grafana.json.j2
index d9a75b8bc0..2b83af7471 100644
--- a/ansible/roles/grafana/templates/grafana.json.j2
+++ b/ansible/roles/grafana/templates/grafana.json.j2
@@ -6,6 +6,13 @@
             "dest": "/etc/grafana/grafana.ini",
             "owner": "grafana",
             "perm": "0600"
+        },
+        {
+            "source": "{{ container_config_directory }}/grafana_home_dashboard.json",
+            "dest": "/usr/share/grafana/public/dashboards/home.json",
+            "owner": "root",
+            "perm": "0644",
+            "optional": true
         }
     ],
     "permissions": [