diff --git a/ansible/roles/openvswitch/handlers/main.yml b/ansible/roles/openvswitch/handlers/main.yml
index 5fe102c270558f1d433fad7b562968ad504ac25e..dd26abd3ca396c6b773ac46f207a3eff58820f6d 100644
--- a/ansible/roles/openvswitch/handlers/main.yml
+++ b/ansible/roles/openvswitch/handlers/main.yml
@@ -22,7 +22,6 @@
       or openvswitch_start_ovsdb_server | changed
   notify:
     - Waiting for openvswitch_db service to be ready
-    - Ensuring OVS bridge is properly setup
 
 - name: Waiting for openvswitch_db service to be ready
   command: docker exec openvswitch_db ovs-vsctl --no-wait show
@@ -32,18 +31,6 @@
   retries: 30
   delay: 2
 
-- name: Ensuring OVS bridge is properly setup
-  command: docker exec openvswitch_db /usr/local/bin/kolla_ensure_openvswitch_configured {{ item.0 }} {{ item.1 }}
-  register: status
-  changed_when: status.stdout.find('changed') != -1
-  when:
-    - inventory_hostname in groups["network"]
-      or (inventory_hostname in groups["compute"] and computes_need_external_bridge | bool )
-    - not enable_onos | bool
-  with_together:
-    - "{{ neutron_bridge_name.split(',') }}"
-    - "{{ neutron_external_interface.split(',') }}"
-
 - name: Restart openvswitch-vswitchd container
   vars:
     service_name: "openvswitch-vswitchd"
diff --git a/ansible/roles/openvswitch/tasks/deploy.yml b/ansible/roles/openvswitch/tasks/deploy.yml
index ad915af159d25ab01664a5819dedd863c7b9fc12..110210a16b37a4124f086e300b7953cc96c2041f 100644
--- a/ansible/roles/openvswitch/tasks/deploy.yml
+++ b/ansible/roles/openvswitch/tasks/deploy.yml
@@ -3,3 +3,5 @@
 
 - name: Flush Handlers
   meta: flush_handlers
+
+- include_tasks: ensure-ovs-bridge.yml
diff --git a/ansible/roles/openvswitch/tasks/ensure-ovs-bridge.yml b/ansible/roles/openvswitch/tasks/ensure-ovs-bridge.yml
new file mode 100644
index 0000000000000000000000000000000000000000..818a1e487efb41eefc1c0b03c15799c8ddbc11a2
--- /dev/null
+++ b/ansible/roles/openvswitch/tasks/ensure-ovs-bridge.yml
@@ -0,0 +1,12 @@
+---
+- name: Ensuring OVS bridge is properly setup
+  command: docker exec openvswitch_db /usr/local/bin/kolla_ensure_openvswitch_configured {{ item.0 }} {{ item.1 }}
+  register: status
+  changed_when: status.stdout.find('changed') != -1
+  when:
+    - inventory_hostname in groups["network"]
+      or (inventory_hostname in groups["compute"] and computes_need_external_bridge | bool )
+    - not enable_onos | bool
+  with_together:
+    - "{{ neutron_bridge_name.split(',') }}"
+    - "{{ neutron_external_interface.split(',') }}"
diff --git a/ansible/roles/openvswitch/tasks/upgrade.yml b/ansible/roles/openvswitch/tasks/upgrade.yml
index ad915af159d25ab01664a5819dedd863c7b9fc12..110210a16b37a4124f086e300b7953cc96c2041f 100644
--- a/ansible/roles/openvswitch/tasks/upgrade.yml
+++ b/ansible/roles/openvswitch/tasks/upgrade.yml
@@ -3,3 +3,5 @@
 
 - name: Flush Handlers
   meta: flush_handlers
+
+- include_tasks: ensure-ovs-bridge.yml