diff --git a/ansible/roles/prechecks/vars/main.yml b/ansible/roles/prechecks/vars/main.yml
index ea32bd2910fc6d1296fea6904401a7c9f1279240..2a131f3fc22c69a6ffc7d257bc246ba0de9224d6 100644
--- a/ansible/roles/prechecks/vars/main.yml
+++ b/ansible/roles/prechecks/vars/main.yml
@@ -1,8 +1,8 @@
 ---
 docker_version_min: '18.09'
 docker_py_version_min: '3.4.1'
-ansible_version_min: '2.10'
-ansible_version_max: '2.11'
+ansible_version_min: '2.11'
+ansible_version_max: '2.12'
 
 # Top level keys should match ansible_facts.distribution.
 # These map to lists of supported releases (ansible_facts.distribution_release) or
diff --git a/doc/source/user/quickstart.rst b/doc/source/user/quickstart.rst
index 111822e3fc06d30d96cfd4d2aea8da6452a956db..9b125041b472ace01660e18fe11d49c6309c6f5f 100644
--- a/doc/source/user/quickstart.rst
+++ b/doc/source/user/quickstart.rst
@@ -89,11 +89,11 @@ If not installing Kolla Ansible in a virtual environment, skip this section.
       pip install -U pip
 
 #. Install `Ansible <http://www.ansible.com>`__. Kolla Ansible requires at least
-   Ansible ``2.10`` and supports up to ``4``.
+   Ansible ``4`` and supports up to ``5``.
 
    .. code-block:: console
 
-      pip install 'ansible<5.0'
+      pip install 'ansible==5.*'
 
 Install dependencies not using a virtual environment
 ----------------------------------------------------
@@ -121,7 +121,7 @@ If installing Kolla Ansible in a virtual environment, skip this section.
       sudo pip3 install -U pip
 
 #. Install `Ansible <http://www.ansible.com>`__. Kolla Ansible requires at least
-   Ansible ``2.10`` and supports up to ``4``.
+   Ansible ``4`` and supports up to ``5``.
 
    For CentOS or RHEL, run:
 
@@ -138,7 +138,7 @@ If installing Kolla Ansible in a virtual environment, skip this section.
    .. note::
 
       If the installed Ansible version does not meet the requirements, one can
-      use pip: ``sudo pip install -U 'ansible<3.0'``.
+      use pip: ``sudo pip install -U 'ansible==5.*'``.
       Beware system package upgrades might interfere with that so it
       is recommended to uninstall the system package first. One might be better
       off with the virtual environment method to avoid this pitfall.
diff --git a/doc/source/user/virtual-environments.rst b/doc/source/user/virtual-environments.rst
index 1cea3308311a9294e52be60c308a4380e03679a3..fee164468477de5e3af23c74c1d090161db7a29a 100644
--- a/doc/source/user/virtual-environments.rst
+++ b/doc/source/user/virtual-environments.rst
@@ -22,7 +22,7 @@ python virtual environment on the Ansible control host. For example:
    source /path/to/venv/bin/activate
    pip install -U pip
    pip install kolla-ansible
-   pip install 'ansible<2.10'
+   pip install 'ansible==5.*'
    deactivate
 
 To use the virtual environment, it should first be activated:
diff --git a/releasenotes/notes/ansible-5-56bc1764e733d5af.yaml b/releasenotes/notes/ansible-5-56bc1764e733d5af.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d2ed3120bc56804ab9171ac58c6e86120e0df991
--- /dev/null
+++ b/releasenotes/notes/ansible-5-56bc1764e733d5af.yaml
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - |
+    Minimum supported Ansible version is now ``4`` (ansible-core 2.11)
+    and maximum supported is ``5`` (ansible-core 2.12).
diff --git a/test-requirements.txt b/test-requirements.txt
index ef84c6b8a8aaddcd0fd40b894b413f59cb606961..305532bcb3790d0ad1fe400e3ed7cad1541fc016 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -13,4 +13,4 @@ coverage!=4.4,>=4.0 # Apache-2.0
 docker>=2.4.2 # Apache-2.0
 oslotest>=3.2.0 # Apache-2.0
 stestr>=2.0.0 # Apache-2.0
-ansible>=2.10.0,<5.0 # GPLv3
+ansible>=4,<6 # GPLv3
diff --git a/tests/run.yml b/tests/run.yml
index 0435059e66eb63cb8e1cef6a6e827b52dfd5dedf..d372d7e597742905b0de5e58bfcf8e815444d16c 100644
--- a/tests/run.yml
+++ b/tests/run.yml
@@ -202,8 +202,8 @@
 
     - name: install kolla-ansible and dependencies
       vars:
-        ansible_version_min: "==2.10.*"
-        ansible_version_max: "==4.*"
+        ansible_version_min: "==4.*"
+        ansible_version_max: "==5.*"
         # Test latest ansible version on Ubuntu, minimum supported on others.
         ansible_version_constraint: >-
           {{ ansible_version_min if is_upgrade or base_distro != 'ubuntu' else ansible_version_max }}
diff --git a/tools/kolla-ansible b/tools/kolla-ansible
index fb885e334b5e96efaf698770c0ff0d1f03461293..3b40f28c012d01a3f74676fb41e9b30e6a41475e 100755
--- a/tools/kolla-ansible
+++ b/tools/kolla-ansible
@@ -68,8 +68,8 @@ function check_environment_coherence {
         exit 1
     fi
 
-    local ANSIBLE_VERSION_MIN=2.10
-    local ANSIBLE_VERSION_MAX=2.11
+    local ANSIBLE_VERSION_MIN=2.11
+    local ANSIBLE_VERSION_MAX=2.12
 
     if [[ $(printf "%s\n" "$ANSIBLE_VERSION_MIN" "$ANSIBLE_VERSION_MAX" "$ansible_version" | sort -V | head -n1) != "$ANSIBLE_VERSION_MIN" ]] ||
        [[ $(printf "%s\n" "$ANSIBLE_VERSION_MIN" "$ANSIBLE_VERSION_MAX" "$ansible_version" | sort -V | tail -n1) != "$ANSIBLE_VERSION_MAX" ]]; then