diff --git a/roles/container-engine/cri-o/tasks/crio_repo.yml b/roles/container-engine/cri-o/tasks/crio_repo.yml
index 099d2ef643b36d78a682b067feb9dd76840953d7..51142640c8748a0004870be434bb1630bd0214aa 100644
--- a/roles/container-engine/cri-o/tasks/crio_repo.yml
+++ b/roles/container-engine/cri-o/tasks/crio_repo.yml
@@ -149,6 +149,13 @@
     - repo: "fedora-modular"
       section: "fedora-modular"
 
+- name: Enable CRI-O ex module
+  command: "rpm-ostree ex module enable cri-o:{{ crio_version }}"
+  become: true
+  when:
+    - is_ostree
+    - ostree_version is defined and ostree_version.stdout is version('2021.9', '>=')
+
 - name: Enable CRI-O module
   command: "dnf -y module enable cri-o:{{ crio_version }}"
   args:
diff --git a/roles/container-engine/cri-o/tasks/main.yaml b/roles/container-engine/cri-o/tasks/main.yaml
index 25b338ed58ba326da1580ec483c47e5470045b35..d3997f4a5ff934f29daea15f9312346b7d9c939a 100644
--- a/roles/container-engine/cri-o/tasks/main.yaml
+++ b/roles/container-engine/cri-o/tasks/main.yaml
@@ -11,6 +11,13 @@
   set_fact:
     is_ostree: "{{ ostree.stat.exists }}"
 
+- name: get ostree version
+  shell: "set -o pipefail && rpm-ostree --version | awk -F\\' '/Version/{print $2}'"
+  args:
+    executable: /bin/bash
+  register: ostree_version
+  when: is_ostree
+
 - name: gather os specific variables
   include_vars: "{{ item }}"
   with_first_found: