diff --git a/diskimage_builder/elements/epel/pre-install.d/05-rpm-epel-release b/diskimage_builder/elements/epel/pre-install.d/05-rpm-epel-release
index 22734afa1..a4eef6fc9 100755
--- a/diskimage_builder/elements/epel/pre-install.d/05-rpm-epel-release
+++ b/diskimage_builder/elements/epel/pre-install.d/05-rpm-epel-release
@@ -8,7 +8,7 @@ set -o pipefail
 
 if [[ ${DISTRO_NAME} =~ "centos" ]]; then
     # Centos has "epel-release" in extras, which is default enabled.
-    yum install -y epel-release
+    ${YUM} install -y epel-release
 else
     # For RHEL, we have to scrape the download page to find the latest
     # release and install that
@@ -34,7 +34,11 @@ else
 fi
 
 if [ ${DIB_EPEL_DISABLED:-0} -ne 0 ]; then
-    yum-config-manager --disable epel
+    if [[ ${YUM} == "dnf" ]]; then
+        dnf config-manager --set-disabled epel
+    else
+        yum-config-manager --disable epel
+    fi
 fi
 
 DIB_EPEL_MIRROR=${DIB_EPEL_MIRROR:-}
diff --git a/diskimage_builder/elements/rpm-distro/pre-install.d/01-override-yum-arch b/diskimage_builder/elements/rpm-distro/pre-install.d/01-override-yum-arch
index 3b20ff632..88fa480b0 100755
--- a/diskimage_builder/elements/rpm-distro/pre-install.d/01-override-yum-arch
+++ b/diskimage_builder/elements/rpm-distro/pre-install.d/01-override-yum-arch
@@ -28,7 +28,7 @@ else
     exit 1
 fi
 
-if [[ $DISTRO_NAME == "fedora" ]]; then
+if [[ ${YUM} == "dnf" ]]; then
     mkdir -p /etc/dnf/vars
     echo $basearch > /etc/dnf/vars/basearch
     echo $arch > /etc/dnf/vars/arch
@@ -43,5 +43,5 @@ if [[ ${DISTRO_NAME} =~ "centos" ]]; then
     else
         contentdir=altarch
     fi
-    echo $contentdir > /etc/yum/vars/contentdir
+    echo $contentdir > /etc/${YUM}/vars/contentdir
 fi
diff --git a/diskimage_builder/elements/yum/post-install.d/99-reset-yum-conf b/diskimage_builder/elements/yum/post-install.d/99-reset-yum-conf
index 6a6b741ea..d4fad1cc8 100755
--- a/diskimage_builder/elements/yum/post-install.d/99-reset-yum-conf
+++ b/diskimage_builder/elements/yum/post-install.d/99-reset-yum-conf
@@ -6,7 +6,7 @@ fi
 set -eu
 set -o pipefail
 
-if [[ $DISTRO_NAME == "fedora" && $DIB_RELEASE -ge 22 ]]; then
+if [[ ${YUM} == "dnf" ]]; then
     cfg=/etc/dnf/dnf.conf
     cachedir=/var/cache/dnf
 else
diff --git a/diskimage_builder/elements/yum/pre-install.d/01-yum-keepcache b/diskimage_builder/elements/yum/pre-install.d/01-yum-keepcache
index 8105ce5e9..d471d0cce 100755
--- a/diskimage_builder/elements/yum/pre-install.d/01-yum-keepcache
+++ b/diskimage_builder/elements/yum/pre-install.d/01-yum-keepcache
@@ -6,7 +6,7 @@ fi
 set -eu
 set -o pipefail
 
-if [[ $DISTRO_NAME == "fedora" && $DIB_RELEASE -ge 22 ]]; then
+if [[ ${YUM} == "dnf" ]]; then
     # dnf is slightly different; doesn't have these by default
     cfg=/etc/dnf/dnf.conf
     echo "keepcache=1" >> $cfg