diff --git a/ansible/roles/haproxy/tasks/precheck.yml b/ansible/roles/haproxy/tasks/precheck.yml
index f4689be12b37f739e03f3135891a488ff4ce26a4..5367d9a9d2f3293f224f4225bfe105c4fc44b985 100644
--- a/ansible/roles/haproxy/tasks/precheck.yml
+++ b/ansible/roles/haproxy/tasks/precheck.yml
@@ -124,6 +124,17 @@
     - "{{ 'sahara_api' not in haproxy_stat }}"
     - inventory_hostname in groups['haproxy']
 
+- name: Checking free port for Trove API HAProxy
+  wait_for:
+    host: "{{ kolla_internal_vip_address }}"
+    port: "{{ trove_api_port }}"
+    connect_timeout: 1
+    state: stopped
+  when:
+    - enable_trove | bool
+    - "{{ 'trove_api' not in haproxy_stat }}"
+    - inventory_hostname in groups['haproxy']
+
 - name: Checking free port for Watcher API HAProxy
   wait_for:
     host: "{{ kolla_internal_vip_address }}"
@@ -134,4 +145,3 @@
     - enable_watcher | bool
     - "{{ 'watcher_api' not in haproxy_stat }}"
     - inventory_hostname in groups['haproxy']
-
diff --git a/ansible/roles/trove/tasks/precheck.yml b/ansible/roles/trove/tasks/precheck.yml
index ed97d539c095cf1413af30cc23dea272095b97dd..164d4e5630a13d65d2afeeb71e3853dff969aefb 100644
--- a/ansible/roles/trove/tasks/precheck.yml
+++ b/ansible/roles/trove/tasks/precheck.yml
@@ -1 +1,16 @@
 ---
+- name: Get container facts
+  kolla_container_facts:
+    name:
+      - trove_api
+  register: container_facts
+
+- name: Checking free port for Trove API
+  wait_for:
+    host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
+    port: "{{ trove_api_port }}"
+    connect_timeout: 1
+    state: stopped
+  when:
+    - container_facts['trove_api'] is not defined
+    - inventory_hostname in groups['trove-api']