diff --git a/ansible/compute-node-discovery.yml b/ansible/compute-node-discovery.yml
index ce5de3ea056902aa5e633a5bebf7953399bee67a..dbc0d9d662e67007b9ff7d5d82fb9331cd0090cf 100644
--- a/ansible/compute-node-discovery.yml
+++ b/ansible/compute-node-discovery.yml
@@ -8,9 +8,9 @@
     controller_host: "{{ groups['controllers'][0] }}"
   tasks:
     - name: Ensure ipmitool is installed
-      yum:
+      package:
         name: ipmitool
-        state: installed
+        state: present
       become: True
       run_once: True
       delegate_to: "{{ controller_host }}"
diff --git a/ansible/idrac-bootstrap.yml b/ansible/idrac-bootstrap.yml
index 17c28a177f865e70cb0d7dd030934b77ad27da70..5ff65f1831944f0abe4c0765921f855d9ce25d05 100644
--- a/ansible/idrac-bootstrap.yml
+++ b/ansible/idrac-bootstrap.yml
@@ -43,17 +43,17 @@
     # Install Dell server admin tools.
     - block:
         - name: Ensure wget is installed
-          yum:
+          package:
             name: wget
-            state: installed
+            state: present
 
         - name: Ensure Dell srvadmin repository is installed
           shell: "wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash"
 
         - name: Ensure Dell srvadmin-idrac7 package is installed
-          yum:
+          package:
             name: srvadmin-idrac7
-            state: installed
+            state: present
 
         # Configure access to the temporary network on a controller.
         - block:
diff --git a/ansible/kayobe-target-venv.yml b/ansible/kayobe-target-venv.yml
index 488ab7f821530cf825da581cad2f5512ae0c574a..344f2bf9ed97386cdef2b4b46b9f87286d7ad679 100644
--- a/ansible/kayobe-target-venv.yml
+++ b/ansible/kayobe-target-venv.yml
@@ -28,7 +28,7 @@
         - name: Ensure the python-virtualenv package is installed
           package:
             name: python-virtualenv
-            state: installed
+            state: present
           become: True
 
         - name: Ensure global virtualenv directory exists
@@ -78,7 +78,7 @@
         - name: Ensure the python-setuptools package is installed
           package:
             name: python-setuptools
-            state: installed
+            state: present
           become: True
 
         - name: Ensure pip is installed
diff --git a/ansible/kolla-target-venv.yml b/ansible/kolla-target-venv.yml
index 64b438540ca6e66d70321c78fe60a88fde57c52c..e4f58753c954aa6851ba08c545b61ddba28b4ae1 100644
--- a/ansible/kolla-target-venv.yml
+++ b/ansible/kolla-target-venv.yml
@@ -22,7 +22,7 @@
         - name: Ensure the python-virtualenv package is installed
           package:
             name: python-virtualenv
-            state: installed
+            state: present
           become: True
 
         - name: Ensure kolla-ansible virtualenv has the latest version of pip installed
diff --git a/ansible/overcloud-host-image-workaround-cloud-init.yml b/ansible/overcloud-host-image-workaround-cloud-init.yml
index 94fd775dac6d0bc0f780f5fd477a67a4abd6dc06..c55b1c96b2b17bb04a43f5eb56318698da1de19f 100644
--- a/ansible/overcloud-host-image-workaround-cloud-init.yml
+++ b/ansible/overcloud-host-image-workaround-cloud-init.yml
@@ -18,7 +18,7 @@
             --connection local
             --become
             -m yum
-            -a "name=libguestfs-tools state=installed"'
+            -a "name=libguestfs-tools state=present"'
         - name: Template cloud-init-repo
           copy:
             content: |
diff --git a/ansible/overcloud-host-image-workaround-resolv.yml b/ansible/overcloud-host-image-workaround-resolv.yml
index 66567951987514b6760afeca1d4d8d2ef28021c9..16018ae54209041a55aa8e9e0ab90a9e0283e9bd 100644
--- a/ansible/overcloud-host-image-workaround-resolv.yml
+++ b/ansible/overcloud-host-image-workaround-resolv.yml
@@ -21,7 +21,7 @@
             --connection local
             --become
             -m yum
-            -a "name=libguestfs-tools state=installed"'
+            -a "name=libguestfs-tools state=present"'
 
         - name: Ensure the overcloud host image has bogus name server entries removed
           command: >
diff --git a/ansible/roles/bootstrap/tasks/main.yml b/ansible/roles/bootstrap/tasks/main.yml
index 4439aa15a6bbedde663b0cf904ae1c507d40fce9..0c6221ba2f4c3dcaefd4637180d905fcadc21845 100644
--- a/ansible/roles/bootstrap/tasks/main.yml
+++ b/ansible/roles/bootstrap/tasks/main.yml
@@ -5,7 +5,7 @@
 - name: Ensure required packages are installed
   package:
     name: "{{ bootstrap_package_dependencies }}"
-    state: installed
+    state: present
   become: True
 
 - name: Check whether an SSH key exists
diff --git a/ansible/roles/console-allocation/tasks/main.yml b/ansible/roles/console-allocation/tasks/main.yml
index 2d3da89c3420f91bbf38ecde8b08a6eff0bd7254..02587b34d09b6491bfdb694e2280f13dd46e4111 100644
--- a/ansible/roles/console-allocation/tasks/main.yml
+++ b/ansible/roles/console-allocation/tasks/main.yml
@@ -22,7 +22,7 @@
   local_action:
     module: package
     name: "{{ item }}"
-    state: installed
+    state: present
     use: "{{ console_allocation_package_manager }}"
   become: True
   with_items: "{{ console_allocation_package_dependencies }}"
diff --git a/ansible/roles/dev-tools/tasks/main.yml b/ansible/roles/dev-tools/tasks/main.yml
index 6294b6a098a044ee54657106ffc6dcf5c97a6089..51dc006881d4608b7773abc2a02f783599d23fea 100644
--- a/ansible/roles/dev-tools/tasks/main.yml
+++ b/ansible/roles/dev-tools/tasks/main.yml
@@ -1,6 +1,6 @@
 ---
 - name: Ensure required packages are installed
-  yum:
+  package:
     name: "{{ dev_tools_packages }}"
-    state: installed
+    state: present
   become: True
diff --git a/ansible/roles/disable-selinux/tasks/main.yml b/ansible/roles/disable-selinux/tasks/main.yml
index 0de9956f148b28f762848d054bf35f949dbd7d57..f9b06a9db302fd711d572081b8239080bde183be 100644
--- a/ansible/roles/disable-selinux/tasks/main.yml
+++ b/ansible/roles/disable-selinux/tasks/main.yml
@@ -1,9 +1,9 @@
 ---
 - name: Ensure required packages are installed
-  yum:
+  package:
     name:
       - libselinux-python
-    state: installed
+    state: present
   become: True
 
 - name: Ensure SELinux is disabled
diff --git a/ansible/roles/ip-allocation/tasks/main.yml b/ansible/roles/ip-allocation/tasks/main.yml
index f2dfa9e3cf15b44ebe6d13526301a85e286f6b67..a5a71dd2d17934f61e813601c3568b6702015cdf 100644
--- a/ansible/roles/ip-allocation/tasks/main.yml
+++ b/ansible/roles/ip-allocation/tasks/main.yml
@@ -22,7 +22,7 @@
   local_action:
     module: package
     name: "{{ item }}"
-    state: installed
+    state: present
     use: "{{ ip_allocation_package_manager }}"
   become: True
   with_items: "{{ ip_allocation_package_dependencies }}"
diff --git a/ansible/roles/kolla-ansible/tasks/install.yml b/ansible/roles/kolla-ansible/tasks/install.yml
index 12356e7a68bcc51e527f3b4226dfbfe0e48d8b26..33496117892e72ac8c213c449f8daa79f20cd1a8 100644
--- a/ansible/roles/kolla-ansible/tasks/install.yml
+++ b/ansible/roles/kolla-ansible/tasks/install.yml
@@ -3,9 +3,9 @@
   include_vars: "{{ ansible_os_family }}.yml"
 
 - name: Ensure EPEL repo is installed
-  yum:
+  package:
     name: epel-release
-    state: installed
+    state: present
   become: True
   when:
     - ansible_os_family == 'RedHat'
@@ -14,7 +14,7 @@
 - name: Ensure required packages are installed
   package:
     name: "{{ kolla_ansible_package_dependencies }}"
-    state: installed
+    state: present
   become: True
 
 - name: Ensure source code checkout parent directory exists
diff --git a/ansible/roles/kolla-ceph/tasks/config.yml b/ansible/roles/kolla-ceph/tasks/config.yml
index 3a518ee58f2a0aafd417fa70cd2a5c920cb1129a..9325c3818e742d00209aaad293590eec9f74f07d 100644
--- a/ansible/roles/kolla-ceph/tasks/config.yml
+++ b/ansible/roles/kolla-ceph/tasks/config.yml
@@ -3,7 +3,7 @@
 - name: Ensure required packages are installed
   package:
     name: parted
-    state: installed
+    state: present
   become: True
   when: ceph_disks | length > 0
 
diff --git a/ansible/roles/kolla/tasks/install.yml b/ansible/roles/kolla/tasks/install.yml
index 69b2395041410eef6cfd0bd0aa2d43ce7ba051bf..69ac843c88ecf138abc0913bf2c8b04f9d05ae0d 100644
--- a/ansible/roles/kolla/tasks/install.yml
+++ b/ansible/roles/kolla/tasks/install.yml
@@ -1,15 +1,15 @@
 ---
 - name: Ensure EPEL repo is installed
-  yum:
+  package:
     name: epel-release
-    state: installed
+    state: present
   become: True
   when:
     - ansible_os_family == 'RedHat'
     - kolla_install_epel | bool
 
 - name: Ensure required packages are installed
-  yum:
+  package:
     name:
       - gcc
       - libffi-devel
@@ -17,7 +17,7 @@
       - python-devel
       - python-pip
       - python-virtualenv
-    state: installed
+    state: present
   become: True
 
 - name: Ensure source code checkout path exists
diff --git a/ansible/roles/swift-block-devices/tasks/main.yml b/ansible/roles/swift-block-devices/tasks/main.yml
index 658739b694b920f80a1715310bbcfc50a613382e..0fd1a4f10ce3f903a3116550cc9fdfeb2a80528e 100644
--- a/ansible/roles/swift-block-devices/tasks/main.yml
+++ b/ansible/roles/swift-block-devices/tasks/main.yml
@@ -14,7 +14,7 @@
     name:
       - parted
       - xfsprogs
-    state: installed
+    state: present
   become: True
   when: swift_block_devices | length > 0
 
diff --git a/ansible/roles/wipe-disks/tasks/main.yml b/ansible/roles/wipe-disks/tasks/main.yml
index bfe2217f49b04e18729fe5d5d59ed3ac8bea2f6d..1b88e88cb1fe6fcd1b0430619bf64f17feb53a90 100644
--- a/ansible/roles/wipe-disks/tasks/main.yml
+++ b/ansible/roles/wipe-disks/tasks/main.yml
@@ -7,7 +7,7 @@
 # any LVM or file system state from them.
 
 - name: Ensure LVM2 is installed
-  yum:
+  package:
     name: lvm2
     state: present
   become: True
diff --git a/ansible/roles/yum/tasks/local-mirror.yml b/ansible/roles/yum/tasks/local-mirror.yml
index 02557a00faacd0fc04d018a3daa5954502e046ae..e730b007d569c2bf1d938f2d7e5b3f930a3bf9a3 100644
--- a/ansible/roles/yum/tasks/local-mirror.yml
+++ b/ansible/roles/yum/tasks/local-mirror.yml
@@ -24,7 +24,7 @@
 - name: Yum | Install epel-release (CentOS)
   yum:
     name: epel-release
-    state: installed
+    state: present
   become: True
 
 - name: Template | Copy EPEL repo templates (CentOS)