diff --git a/ansible/roles/haproxy/tasks/precheck.yml b/ansible/roles/haproxy/tasks/precheck.yml
index c1c47027fdd6e8abd6ee41f6266666356fb9eab2..2e1a1de8cff3de244bb35151958d42975e8a0d51 100644
--- a/ansible/roles/haproxy/tasks/precheck.yml
+++ b/ansible/roles/haproxy/tasks/precheck.yml
@@ -234,6 +234,17 @@
     - "{{ 'sahara_api' not in haproxy_stat }}"
     - inventory_hostname in groups['haproxy']
 
+- name: Checking free port for Searchlight API HAProxy
+  wait_for:
+    host: "{{ kolla_internal_vip_address }}"
+    port: "{{ searchlight_api_port }}"
+    connect_timeout: 1
+    state: stopped
+  when:
+    - enable_searchlight | bool
+    - "{{ 'searchlight_api' not in haproxy_stat }}"
+    - inventory_hostname in groups['haproxy']
+
 - name: Checking free port for Senlin API HAProxy
   wait_for:
     host: "{{ kolla_internal_vip_address }}"
diff --git a/ansible/roles/prechecks/tasks/port_checks.yml b/ansible/roles/prechecks/tasks/port_checks.yml
index 5eb62696c55bdb091292b4d0ebd76a6711009f8f..bc6f5951845a7098aa1dfe8965f2f060027098ad 100644
--- a/ansible/roles/prechecks/tasks/port_checks.yml
+++ b/ansible/roles/prechecks/tasks/port_checks.yml
@@ -519,23 +519,3 @@
   when:
     - enable_ceph_rgw | bool
     - inventory_hostname in groups['haproxy']
-
-- name: Checking free port for Searchlight API
-  wait_for:
-    host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
-    port: "{{ searchlight_api_port }}"
-    connect_timeout: 1
-    state: stopped
-  when:
-    - enable_searchlight | bool
-    - inventory_hostname in groups['searchlight-api']
-
-- name: Checking free port for Searchlight API HAProxy
-  wait_for:
-    host: "{{ kolla_internal_vip_address }}"
-    port: "{{ searchlight_api_port }}"
-    connect_timeout: 1
-    state: stopped
-  when:
-    - enable_searchlight | bool
-    - inventory_hostname in groups['haproxy']
diff --git a/ansible/roles/searchlight/tasks/precheck.yml b/ansible/roles/searchlight/tasks/precheck.yml
index ed97d539c095cf1413af30cc23dea272095b97dd..30820aed169df6ff0fb35d6cb114ab2b0d99a5d5 100644
--- a/ansible/roles/searchlight/tasks/precheck.yml
+++ b/ansible/roles/searchlight/tasks/precheck.yml
@@ -1 +1,16 @@
 ---
+- name: Get container facts
+  kolla_container_facts:
+    name:
+      - searchlight_api
+  register: container_facts
+
+- name: Checking free port for Searchlight API
+  wait_for:
+    host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
+    port: "{{ searchlight_api_port }}"
+    connect_timeout: 1
+    state: stopped
+  when:
+    - container_facts['searchlight_api'] is not defined
+    - inventory_hostname in groups['searchlight-api']