diff --git a/ansible/roles/mariadb/tasks/deploy.yml b/ansible/roles/mariadb/tasks/deploy.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c13e4eb0a2729e9368a0302f5fdb754a5097c2d9
--- /dev/null
+++ b/ansible/roles/mariadb/tasks/deploy.yml
@@ -0,0 +1,20 @@
+---
+- include: config.yml
+
+- include: bootstrap.yml
+
+- include: start.yml
+
+# We use register as a test to see whether the database is active and ready to
+# communicate. This run on all hosts that have a database and attempts to talk
+# to the local database rather than the vip,
+- include: register.yml
+
+# This will restart the container we initially used to bootstrap the cluster to
+# make it match the other containers environment-wise. This also prevents a
+# change from showing up when rerunning the playbooks
+- include: start.yml
+
+# Since the last start.yml may have recreated some containers we must wait and
+# check the health again to ensure the hosts are active.
+- include: register.yml
diff --git a/ansible/roles/mariadb/tasks/main.yml b/ansible/roles/mariadb/tasks/main.yml
index c13e4eb0a2729e9368a0302f5fdb754a5097c2d9..b017e8b4ad9edbc10e43b690b269d460e5b9b1f4 100644
--- a/ansible/roles/mariadb/tasks/main.yml
+++ b/ansible/roles/mariadb/tasks/main.yml
@@ -1,20 +1,2 @@
 ---
-- include: config.yml
-
-- include: bootstrap.yml
-
-- include: start.yml
-
-# We use register as a test to see whether the database is active and ready to
-# communicate. This run on all hosts that have a database and attempts to talk
-# to the local database rather than the vip,
-- include: register.yml
-
-# This will restart the container we initially used to bootstrap the cluster to
-# make it match the other containers environment-wise. This also prevents a
-# change from showing up when rerunning the playbooks
-- include: start.yml
-
-# Since the last start.yml may have recreated some containers we must wait and
-# check the health again to ensure the hosts are active.
-- include: register.yml
+- include: "{{ action }}.yml"
diff --git a/ansible/roles/mariadb/tasks/pull.yml b/ansible/roles/mariadb/tasks/pull.yml
new file mode 100644
index 0000000000000000000000000000000000000000..13d27693b3a4be6662c13f32709e74e28c03b8bc
--- /dev/null
+++ b/ansible/roles/mariadb/tasks/pull.yml
@@ -0,0 +1,7 @@
+---
+- name: Pulling mariadb image
+  kolla_docker:
+    action: "pull_image"
+    common_options: "{{ docker_common_options }}"
+    image: "{{ mariadb_image_full }}"
+  when: inventory_hostname in groups['mariadb']