diff --git a/molecule/centos-9/molecule.yml b/molecule/centos-9/molecule.yml
new file mode 100644
index 0000000000000000000000000000000000000000..51804b8f9ddbf8b49e9bad6fe715eaf905d87a79
--- /dev/null
+++ b/molecule/centos-9/molecule.yml
@@ -0,0 +1,18 @@
+---
+driver:
+  name: docker
+platforms:
+  - name: centos-9
+    image: quay.io/ansible-freeipa/upstream-tests:centos-9
+    pre_build_image: true
+    hostname: ipaserver.test.local
+    dns_servers:
+      - 127.0.0.1
+    volumes:
+      - /sys/fs/cgroup:/sys/fs/cgroup:ro
+    command: /usr/sbin/init
+    privileged: true
+provisioner:
+  name: ansible
+  playbooks:
+    prepare: ../resources/playbooks/prepare.yml
diff --git a/tests/azure/azure-pipelines.yml b/tests/azure/azure-pipelines.yml
index 2feb7fa652cd806c921dafff8ce0e4d7f00f7427..b1cf346953839877f2422b352503b2479cfc4a97 100644
--- a/tests/azure/azure-pipelines.yml
+++ b/tests/azure/azure-pipelines.yml
@@ -18,6 +18,17 @@ stages:
       scenario: fedora-latest
       ansible_version: ">=2.9,<2.10"
 
+# CentOS 9
+
+- stage: CentOS9_Ansible_2_9
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: centos-9
+      ansible_version: ">=2.9,<2.10"
+
 # CentOS 8
 
 - stage: CentOS8_Ansible_2_9
diff --git a/tests/azure/nightly.yml b/tests/azure/nightly.yml
index 83bce8b5c8fffbc4cde8bfa1aca9731716372d48..043b756b24c68ba4ba9c209c698b980ed515a74d 100644
--- a/tests/azure/nightly.yml
+++ b/tests/azure/nightly.yml
@@ -43,6 +43,35 @@ stages:
       scenario: fedora-latest
       ansible_version: ""
 
+# CentoOS 9
+
+- stage: CentOS9_Ansible_2_9
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: centos-9
+      ansible_version: ">=2.9,<2.10"
+
+- stage: CentOS9_Ansible_Core_2_11
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: centos-9
+      ansible_version: "-core >=2.11,<2.12"
+
+- stage: CentOS9_Ansible_latest
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: centos-9
+      ansible_version: ""
+
 # CentOS 8
 
 - stage: CentOS8_Ansible_2_9