diff --git a/devstack/lib/ironic b/devstack/lib/ironic
index 7e5e01fc6a..03fb806a2d 100644
--- a/devstack/lib/ironic
+++ b/devstack/lib/ironic
@@ -314,7 +314,7 @@ IPA_DOWNLOAD_BRANCH=${IPA_DOWNLOAD_BRANCH:-master}
 IPA_DOWNLOAD_BRANCH=$(echo $IPA_DOWNLOAD_BRANCH | tr / -)
 
 # OS for using with DIB images
-IRONIC_DIB_RAMDISK_OS=${IRONIC_DIB_RAMDISK_OS:-centos8}
+IRONIC_DIB_RAMDISK_OS=${IRONIC_DIB_RAMDISK_OS:-centos9}
 IRONIC_DIB_RAMDISK_RELEASE=${IRONIC_DIB_RAMDISK_RELEASE:-}
 
 # Configure URLs required to download ramdisk if we're not building it, and
@@ -341,11 +341,15 @@ fi
 # to build the dib based ironic-python-agent ramdisk.
 IRONIC_DIB_RAMDISK_OPTIONS=${IRONIC_DIB_RAMDISK_OPTIONS:-}
 if [[ -z "$IRONIC_DIB_RAMDISK_OPTIONS" ]]; then
+    # Adapt for DIB naming change
     if [[ "$IRONIC_DIB_RAMDISK_OS" == "centos8" ]]; then
-        # Adapt for DIB naming change
         IRONIC_DIB_RAMDISK_OS=centos
         IRONIC_DIB_RAMDISK_RELEASE=8-stream
     fi
+    if [[ "$IRONIC_DIB_RAMDISK_OS" == "centos9" ]]; then
+        IRONIC_DIB_RAMDISK_OS=centos
+        IRONIC_DIB_RAMDISK_RELEASE=9-stream
+    fi
     IRONIC_DIB_RAMDISK_OPTIONS="$IRONIC_DIB_RAMDISK_OS"
 fi
 # DHCP timeout for the dhcp-all-interfaces element.
diff --git a/devstack/tools/ironic/templates/vm.xml b/devstack/tools/ironic/templates/vm.xml
index f5c59b54e5..2a3162afd2 100644
--- a/devstack/tools/ironic/templates/vm.xml
+++ b/devstack/tools/ironic/templates/vm.xml
@@ -17,7 +17,9 @@
     <bios useserial='yes'/>
   </os>
   {% if engine == 'kvm' %}
-    <cpu mode='host-passthrough'/>
+  <cpu mode='host-passthrough'/>
+  {% else %}
+  <cpu mode='host-model'/>
   {% endif %}
   <features>
     <acpi/>
diff --git a/doc/source/install/deploy-ramdisk.rst b/doc/source/install/deploy-ramdisk.rst
index 3979f705f7..8c89c4dd0a 100644
--- a/doc/source/install/deploy-ramdisk.rst
+++ b/doc/source/install/deploy-ramdisk.rst
@@ -14,7 +14,8 @@ Two kinds of images are published on every commit from every branch of
   https://tarballs.openstack.org/ironic-python-agent/dib/files/.
 
   * For Train and older use CentOS 7 images.
-  * For Ussuri and newer use CentOS 8 images.
+  * For Ussuri and up to Yoga use CentOS 8 images.
+  * For Zed and newer use CentOS 9 images.
 
   .. warning:: CentOS 7 master images are no longer updated and must not be
                used.
diff --git a/zuul.d/ironic-jobs.yaml b/zuul.d/ironic-jobs.yaml
index d775ad6568..542ace43c2 100644
--- a/zuul.d/ironic-jobs.yaml
+++ b/zuul.d/ironic-jobs.yaml
@@ -708,7 +708,7 @@
         s-object: True
         s-proxy: True
       devstack_localrc:
-        IRONIC_DIB_RAMDISK_OS: centos8
+        IRONIC_DIB_RAMDISK_OS: centos9
         IRONIC_TEMPEST_WHOLE_DISK_IMAGE: True
         IRONIC_VM_EPHEMERAL_DISK: 0
         IRONIC_VM_INTERFACE_COUNT: 1