diff --git a/ansible/roles/neutron/tasks/deploy.yml b/ansible/roles/neutron/tasks/deploy.yml
new file mode 100644
index 0000000000000000000000000000000000000000..19bf5d384e180aa74681405c75589c5267311c31
--- /dev/null
+++ b/ansible/roles/neutron/tasks/deploy.yml
@@ -0,0 +1,24 @@
+---
+# enforce ironic usage only with openvswtich
+- include: ironic-check.yml
+
+- include: register.yml
+  when: inventory_hostname in groups['neutron-server']
+
+- include: config.yml
+  when: inventory_hostname in groups['compute'] or
+        inventory_hostname in groups['neutron-agents'] or
+        inventory_hostname in groups['neutron-server']
+
+- include: config-neutron-fake.yml
+  when:
+    - inventory_hostname in groups['compute']
+    - enable_nova_fake | bool
+
+- include: bootstrap.yml
+  when: inventory_hostname in groups['neutron-server']
+
+- include: start.yml
+  when: inventory_hostname in groups['compute'] or
+        inventory_hostname in groups['neutron-agents'] or
+        inventory_hostname in groups['neutron-server']
diff --git a/ansible/roles/neutron/tasks/main.yml b/ansible/roles/neutron/tasks/main.yml
index 19bf5d384e180aa74681405c75589c5267311c31..b017e8b4ad9edbc10e43b690b269d460e5b9b1f4 100644
--- a/ansible/roles/neutron/tasks/main.yml
+++ b/ansible/roles/neutron/tasks/main.yml
@@ -1,24 +1,2 @@
 ---
-# enforce ironic usage only with openvswtich
-- include: ironic-check.yml
-
-- include: register.yml
-  when: inventory_hostname in groups['neutron-server']
-
-- include: config.yml
-  when: inventory_hostname in groups['compute'] or
-        inventory_hostname in groups['neutron-agents'] or
-        inventory_hostname in groups['neutron-server']
-
-- include: config-neutron-fake.yml
-  when:
-    - inventory_hostname in groups['compute']
-    - enable_nova_fake | bool
-
-- include: bootstrap.yml
-  when: inventory_hostname in groups['neutron-server']
-
-- include: start.yml
-  when: inventory_hostname in groups['compute'] or
-        inventory_hostname in groups['neutron-agents'] or
-        inventory_hostname in groups['neutron-server']
+- include: "{{ action }}.yml"
diff --git a/ansible/roles/neutron/tasks/pull.yml b/ansible/roles/neutron/tasks/pull.yml
new file mode 100644
index 0000000000000000000000000000000000000000..01c77d2786ebfd4c437e14d0d92d75726d6060e3
--- /dev/null
+++ b/ansible/roles/neutron/tasks/pull.yml
@@ -0,0 +1,50 @@
+---
+- name: Pulling neutron-agents image
+  kolla_docker:
+    action: "pull_image"
+    common_options: "{{ docker_common_options }}"
+    image: "{{ neutron_agents_image_full }}"
+  when: inventory_hostname in groups['neutron-agents']
+
+- name: Pulling neutron-linuxbridge-agent image
+  kolla_docker:
+    action: "pull_image"
+    common_options: "{{ docker_common_options }}"
+    image: "{{ neutron_linuxbridge_agent_image_full }}"
+  when:
+    - (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
+    - neutron_plugin_agent == "linuxbridge"
+
+- name: Pulling neutron-openvswitch-agent image
+  kolla_docker:
+    action: "pull_image"
+    common_options: "{{ docker_common_options }}"
+    image: "{{ neutron_openvswitch_agent_image_full }}"
+  when:
+    - (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
+    - neutron_plugin_agent == "openvswitch"
+
+- name: Pulling neutron-server image
+  kolla_docker:
+    action: "pull_image"
+    common_options: "{{ docker_common_options }}"
+    image: "{{ neutron_server_image_full }}"
+  when: inventory_hostname in groups['neutron-server']
+
+- name: Pulling openvswitch-db image
+  kolla_docker:
+    action: "pull_image"
+    common_options: "{{ docker_common_options }}"
+    image: "{{ openvswitch_db_image_full }}"
+  when:
+    - (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
+    - neutron_plugin_agent == "openvswitch"
+
+- name: Pulling openvswitch-vswitchd image
+  kolla_docker:
+    action: "pull_image"
+    common_options: "{{ docker_common_options }}"
+    image: "{{ openvswitch_vswitchd_image_full }}"
+  when:
+    - (inventory_hostname in groups['compute'] or inventory_hostname in groups['neutron-agents'])
+    - neutron_plugin_agent == "openvswitch"