diff --git a/ansible/roles/haproxy/tasks/precheck.yml b/ansible/roles/haproxy/tasks/precheck.yml
index 0d5972e77756487682957b50a86082d1a3b0b7ee..7b6bf2f6f59a208ddc41fc9d26c53f67e296fe39 100644
--- a/ansible/roles/haproxy/tasks/precheck.yml
+++ b/ansible/roles/haproxy/tasks/precheck.yml
@@ -80,6 +80,17 @@
     - "{{ 'heat_api_cfn' not in haproxy_stat }}"
     - inventory_hostname in groups['haproxy']
 
+- name: Checking free port for Horizon HAProxy
+  wait_for:
+    host: "{{ kolla_internal_vip_address }}"
+    port: "80"
+    connect_timeout: 1
+    state: stopped
+  when:
+    - enable_horizon | bool
+    - "{{ 'horizon' not in haproxy_stat }}"
+    - inventory_hostname in groups['haproxy']
+
 - name: Checking free port for watcher API HAProxy
   wait_for:
     host: "{{ kolla_internal_vip_address }}"
diff --git a/ansible/roles/horizon/tasks/precheck.yml b/ansible/roles/horizon/tasks/precheck.yml
index ed97d539c095cf1413af30cc23dea272095b97dd..703b0e52b262544baab009ea9836823d8de106e9 100644
--- a/ansible/roles/horizon/tasks/precheck.yml
+++ b/ansible/roles/horizon/tasks/precheck.yml
@@ -1 +1,16 @@
 ---
+- name: Get container facts
+  kolla_container_facts:
+    name:
+      - horizon
+  register: container_facts
+
+- name: Checking free port for Horizon
+  wait_for:
+    host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
+    port: "80"
+    connect_timeout: 1
+    state: stopped
+  when:
+    - container_facts['horizon'] is not defined
+    - inventory_hostname in groups['horizon']
diff --git a/ansible/roles/prechecks/tasks/port_checks.yml b/ansible/roles/prechecks/tasks/port_checks.yml
index b2427d886909f571b39a2cea0538df53e616ae18..1bb441da503f2274d969551f1dbccb4b078ccafa 100644
--- a/ansible/roles/prechecks/tasks/port_checks.yml
+++ b/ansible/roles/prechecks/tasks/port_checks.yml
@@ -193,30 +193,6 @@
     - enable_haproxy | bool
     - inventory_hostname in groups['haproxy']
 
-
-
-
-
-- name: Checking free port for Horizon
-  wait_for:
-    host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"
-    port: "80"
-    connect_timeout: 1
-    state: stopped
-  when:
-    - enable_horizon | bool
-    - inventory_hostname in groups['horizon']
-
-- name: Checking free port for Horizon HAProxy
-  wait_for:
-    host: "{{ kolla_internal_vip_address }}"
-    port: "80"
-    connect_timeout: 1
-    state: stopped
-  when:
-    - enable_horizon | bool
-    - inventory_hostname in groups['haproxy']
-
 - name: Checking free port for Ironic
   wait_for:
     host: "{{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}"