diff --git a/ansible/site.yml b/ansible/site.yml
index b5e05aa8b74dbdb78e8a0231994f736f0f960f58..ca9decafec3bbcd226692e9a23aa443a99a421ad 100644
--- a/ansible/site.yml
+++ b/ansible/site.yml
@@ -133,7 +133,6 @@
 - name: Apply role mariadb
   gather_facts: false
   hosts: mariadb
-  serial: '{{ serial|default("0") }}'
   roles:
     - { role: mariadb,
         tags: mariadb,
diff --git a/releasenotes/notes/disable-serial-in-default-442093aca22658f4.yaml b/releasenotes/notes/disable-serial-in-default-442093aca22658f4.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cbb2438ea0f3ba846a620bb6bbd5daff29995250
--- /dev/null
+++ b/releasenotes/notes/disable-serial-in-default-442093aca22658f4.yaml
@@ -0,0 +1,5 @@
+---
+features:
+  - Run ansible playbooks in serial is disabled by default now. Serial is not
+    recommended. But you can enable it by configuring ANSIBLE_SERIAL
+    environment variable.
diff --git a/tools/kolla-ansible b/tools/kolla-ansible
index 251b3239ad3c1d8ded68c154e937777b846b3665..a9cb0b419756965279e4d8c593ab2caa400b8142 100755
--- a/tools/kolla-ansible
+++ b/tools/kolla-ansible
@@ -80,6 +80,9 @@ CONFIG_DIR="/etc/kolla"
 PASSWORDS_FILE="${CONFIG_DIR}/passwords.yml"
 DANGER_CONFIRM=
 INCLUDE_IMAGES=
+# Serial is not recommended and disable in default. User could enable it by
+# simple configure ANSIBLE_SERIAL variable
+ANSIBLE_SERIAL=${ANSIBLE_SERIAL:-0}
 
 while [ "$#" -gt 0 ]; do
     case "$1" in
@@ -207,11 +210,11 @@ EOF
         ;;
 (upgrade)
         ACTION="Upgrading OpenStack Environment"
-        EXTRA_OPTS="$EXTRA_OPTS -e action=upgrade -e serial=30%"
+        EXTRA_OPTS="$EXTRA_OPTS -e action=upgrade -e serial=${ANSIBLE_SERIAL}"
         ;;
 (reconfigure)
         ACTION="Reconfigure OpenStack service"
-        EXTRA_OPTS="$EXTRA_OPTS -e action=reconfigure -e serial=30%"
+        EXTRA_OPTS="$EXTRA_OPTS -e action=reconfigure -e serial=${ANSIBLE_SERIAL}"
         ;;
 (stop)
         ACTION="Stop Kolla containers"