diff --git a/ansible/group_vars/all/dnf b/ansible/group_vars/all/dnf
index 31145f1a48d81668a39aa3565319d622b1bd0e34..cea135a145946c20dd79488366c7a5f7e47ae0c7 100644
--- a/ansible/group_vars/all/dnf
+++ b/ansible/group_vars/all/dnf
@@ -33,8 +33,8 @@ dnf_epel_mirror_directory: 'pub/epel'
 dnf_custom_repos: {}
 
 # Whether to install the epel-release package. This affects RedHat-based
-# systems only. Default value is 'true'.
-dnf_install_epel: true
+# systems only. Default value is 'false'.
+dnf_install_epel: false
 
 ###############################################################################
 # DNF Automatic configuration.
diff --git a/ansible/roles/dnf/defaults/main.yml b/ansible/roles/dnf/defaults/main.yml
index aee355b5153a73d727504fdfe60ff02dc192f103..99c075d319afb3d89028a462d5fd957003002166 100644
--- a/ansible/roles/dnf/defaults/main.yml
+++ b/ansible/roles/dnf/defaults/main.yml
@@ -32,4 +32,4 @@ dnf_epel_mirror_directory: 'pub/epel'
 dnf_custom_repos: {}
 
 # Whether to install the epel-release package.
-dnf_install_epel: true
+dnf_install_epel: false
diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index 0ef793f5b1344f5bb7098a0d7fcafb97c1927a6d..b5fb4933bebfc2c6cd632f528d3b1d4eeffac33f 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -30,7 +30,7 @@ kolla_ansible_target_venv:
 kolla_upper_constraints_file:
 
 # Whether to install the epel-release package.
-kolla_ansible_install_epel: true
+kolla_ansible_install_epel: false
 
 # Password to use to encrypt the passwords.yml file.
 kolla_ansible_vault_password:
diff --git a/ansible/roles/kolla-ansible/templates/kolla/globals.yml b/ansible/roles/kolla-ansible/templates/kolla/globals.yml
index f5c201ab86f5559602c0812337f94baafa923e7c..b72f9cbae2bae015563a229df8e4bb3d51fdee0b 100644
--- a/ansible/roles/kolla-ansible/templates/kolla/globals.yml
+++ b/ansible/roles/kolla-ansible/templates/kolla/globals.yml
@@ -527,8 +527,6 @@ grafana_admin_username: "{{ grafana_local_admin_user_name }}"
 selinux_state: {{ kolla_selinux_state }}
 {% endif %}
 
-install_epel: {{ kolla_ansible_install_epel | bool }}
-
 {% if kolla_enable_host_ntp is not none %}
 enable_host_ntp: {{ kolla_enable_host_ntp | bool }}
 {% endif %}
diff --git a/ansible/roles/kolla/defaults/main.yml b/ansible/roles/kolla/defaults/main.yml
index f0ca0c57ed1308f609795fb2c77458b30844c474..6cee31ba5fc4ba2e181b7be13f1a8c3dbaaa15f9 100644
--- a/ansible/roles/kolla/defaults/main.yml
+++ b/ansible/roles/kolla/defaults/main.yml
@@ -20,7 +20,7 @@ kolla_venv: "{{ ansible_facts.env['PWD'] }}/kolla-venv"
 kolla_upper_constraints_file:
 
 # Whether to install the epel-release package.
-kolla_install_epel: true
+kolla_install_epel: false
 
 # Directory where Kolla config files will be installed.
 kolla_build_config_path:
diff --git a/doc/source/configuration/reference/hosts.rst b/doc/source/configuration/reference/hosts.rst
index 9f42e12c911933470daf061cd51ae6e897e62067..547a432258369aecdb1a29ed36d80e3e56059188 100644
--- a/doc/source/configuration/reference/hosts.rst
+++ b/doc/source/configuration/reference/hosts.rst
@@ -276,11 +276,18 @@ For example, the following configuration defines a single DNF repository called
        gpgkey: http://example.com/gpgkey
        gpgcheck: yes
 
-Disabling EPEL
---------------
+Enabling or disabling EPEL
+--------------------------
+
+Prior to the Yoga release, the EPEL DNF repository was enabled by default
+(``dnf_install_epel: true``). Since Yoga, it is disabled by default
+(``dnf_install_epel: false``).
+
+Previously, EPEL was required to install some packages such as ``python-pip``,
+however this is no longer the case.
 
-It is possible to disable the EPEL DNF repository by setting
-``dnf_install_epel`` to ``false``.
+It is possible to enable or disable the EPEL DNF repository by setting
+``dnf_install_epel`` to ``true`` or ``false`` respectively.
 
 DNF Automatic
 -------------
diff --git a/etc/kayobe/dnf.yml b/etc/kayobe/dnf.yml
index cf09b86fd332e0f43f19d67cb790276c62696c71..1af08f622fd4fb5ab55330b6ecd476664a66cb34 100644
--- a/etc/kayobe/dnf.yml
+++ b/etc/kayobe/dnf.yml
@@ -38,7 +38,7 @@
 #dnf_custom_repos:
 
 # Whether to install the epel-release package. This affects RedHat-based
-# systems only. Default value is 'true'.
+# systems only. Default value is 'false'.
 #dnf_install_epel:
 
 ###############################################################################
diff --git a/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2
index 881d74938c41ea1407238cecfbcab03dc28c64ad..e544e89bc4196c19551021cb377e1fdfb3c9c26b 100644
--- a/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2
+++ b/playbooks/kayobe-overcloud-host-configure-base/overrides.yml.j2
@@ -124,6 +124,8 @@ dnf_custom_repos:
     baseurl: http://packages.treasuredata.com/4/redhat/$releasever/$basearch
     gpgkey: https://packages.treasuredata.com/GPG-KEY-td-agent
     gpgcheck: yes
+# Install EPEL local mirror.
+dnf_install_epel: true
 # Enable DNF Automatic.
 dnf_automatic_enabled: true
 {% endif %}
diff --git a/releasenotes/notes/disable-epel-cef798b3708840d0.yaml b/releasenotes/notes/disable-epel-cef798b3708840d0.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8c5dda4016c932d6a92ffe1713372ccdce65d0c4
--- /dev/null
+++ b/releasenotes/notes/disable-epel-cef798b3708840d0.yaml
@@ -0,0 +1,9 @@
+---
+upgrade:
+  - |
+    The default value of ``dnf_install_epel`` has been changed to ``false``.
+    This means that the EPEL DNF repository is no longer installed by default.
+    Neither existing EPEL repositories nor the ``epel-release`` package will be
+    removed. If necessary, EPEL may be enabled by setting ``dnf_install_epel``
+    to ``true`` in ``dnf.yml``. See `story 2009757
+    <https://storyboard.openstack.org/#!/story/2009757>`__ for details.
diff --git a/roles/kayobe-ci-prep/tasks/main.yml b/roles/kayobe-ci-prep/tasks/main.yml
index c2cb2af1455ef5955b1d3e643b9a01c0492323fa..c90741b7afe2e64e8a5de7d233a15022f5d14759 100644
--- a/roles/kayobe-ci-prep/tasks/main.yml
+++ b/roles/kayobe-ci-prep/tasks/main.yml
@@ -8,14 +8,14 @@
 
 - block:
     # NOTE(mgoddard): The CentOS image used in CI has epel-release installed,
-    # but the configure-mirrors role used by Zuul disables epel. Since we
-    # install epel-release and expect epel to be enabled, enable it here.
+    # but the configure-mirrors role used by Zuul disables epel. We no longer
+    # install EPEL by default, but let's just be sure it's disabled.
     - name: Ensure dnf-plugins-core is installed
       package:
         name: dnf-plugins-core
         state: present
 
     - name: Enable the EPEL repository
-      command: dnf config-manager --enable epel
+      command: dnf config-manager --disable epel
   when: ansible_os_family == 'RedHat'
   become: true