diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index f547cec0d7..b5ccbb3d5e 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -736,7 +736,8 @@ xenserver_himn_ip: "169.254.0.1"
 xenserver_username: "root"
 xenserver_connect_protocol: "https"
 # File used to save XenAPI's facts variables formatted as json.
-xenapi_facts_file: "/etc/kolla/xenapi.json"
+xenapi_facts_root: "/etc/kolla/xenapi/"
+xenapi_facts_file: "facts.json"
 
 #############################################
 # MariaDB component-specific database details
diff --git a/ansible/roles/neutron/tasks/config.yml b/ansible/roles/neutron/tasks/config.yml
index 596eea1913..c7e6a54495 100644
--- a/ansible/roles/neutron/tasks/config.yml
+++ b/ansible/roles/neutron/tasks/config.yml
@@ -149,7 +149,7 @@
     service_name: "{{ item.key }}"
     services_need_ml2_conf_ini:
       - "neutron-openvswitch-agent-xenapi"
-    os_xenapi_variables: "{{ lookup('file', xenapi_facts_file) | from_json }}"
+    os_xenapi_variables: "{{ lookup('file', xenapi_facts_root + '/' + inventory_hostname + '/' + xenapi_facts_file) | from_json }}"
   merge_configs:
     sources:
       - "{{ role_path }}/templates/ml2_conf.ini.j2"
diff --git a/ansible/roles/nova/tasks/bootstrap_xenapi.yml b/ansible/roles/nova/tasks/bootstrap_xenapi.yml
index 7abb543d48..7673463e92 100644
--- a/ansible/roles/nova/tasks/bootstrap_xenapi.yml
+++ b/ansible/roles/nova/tasks/bootstrap_xenapi.yml
@@ -4,6 +4,22 @@
     state: present
   become: True
 
-- name: Bootstrap XenAPI compute node
-  command: xenapi_bootstrap -i {{ xenserver_himn_ip }} -u {{ xenserver_username }} -p {{ xenserver_password }} -f {{ xenapi_facts_file }}
+- name: Ensure XenAPI root path
+  file:
+    path: "{{ xenapi_facts_root }}"
+    state: directory
+    mode: "0770"
+  become: True
+
+- name: Bootstrap XenAPI compute node
+  vars:
+    xenapi_facts_path: "{{ xenapi_facts_root + '/' + xenapi_facts_file }}"
+  command: xenapi_bootstrap -i {{ xenserver_himn_ip }} -u {{ xenserver_username }} -p {{ xenserver_password }} -f {{ xenapi_facts_path }}
+  become: True
+
+- name: Fetching XenAPI facts file
+  fetch:
+    src: "{{ xenapi_facts_root + '/' + xenapi_facts_file }}"
+    dest: "{{ xenapi_facts_root + '/' + inventory_hostname + '/' }}"
+    flat: yes
   become: True