diff --git a/.gitignore b/.gitignore
index 5bce807..3c72600 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,19 +1,24 @@
-SOURCES/ansible-sshd-1c5c48835e01adc176febf945e1fd36b7d9af7fd.tar.gz
-SOURCES/auto-maintenance-2dd50c8a16af647e4c7a768c481335e97735958a.tar.gz
-SOURCES/certificate-1.1.0.tar.gz
-SOURCES/crypto_policies-1.2.0.tar.gz
-SOURCES/ha_cluster-1.3.0.tar.gz
-SOURCES/kdump-1.1.0.tar.gz
-SOURCES/kernel_settings-1.1.0.tar.gz
-SOURCES/logging-1.5.1.tar.gz
-SOURCES/metrics-1.3.1.tar.gz
-SOURCES/nbde_client-1.1.0.tar.gz
-SOURCES/nbde_server-1.1.0.tar.gz
-SOURCES/network-1.4.0.tar.gz
-SOURCES/postfix-1.1.0.tar.gz
-SOURCES/selinux-1.3.0.tar.gz
-SOURCES/ssh-1.1.0.tar.gz
-SOURCES/storage-1.6.1.tar.gz
-SOURCES/timesync-1.6.0.tar.gz
-SOURCES/tlog-1.2.0.tar.gz
-SOURCES/vpn-1.2.0.tar.gz
+SOURCES/ansible-netcommon-2.4.0.tar.gz
+SOURCES/ansible-posix-1.3.0.tar.gz
+SOURCES/ansible-sshd-214df35c0bee77b5d69f49c2da269251d451b28f.tar.gz
+SOURCES/auto-maintenance-ae7a7b58983c6e1c9fb5eb930777de0d423dffeb.tar.gz
+SOURCES/certificate-1.1.1.tar.gz
+SOURCES/cockpit-1.1.2.tar.gz
+SOURCES/community-general-4.1.0.tar.gz
+SOURCES/crypto_policies-1.2.2.tar.gz
+SOURCES/firewall-1.0.1.tar.gz
+SOURCES/ha_cluster-1.3.2.tar.gz
+SOURCES/kdump-1.2.0.tar.gz
+SOURCES/kernel_settings-1.1.2.tar.gz
+SOURCES/logging-1.6.1.tar.gz
+SOURCES/metrics-1.4.0.tar.gz
+SOURCES/nbde_client-1.1.1.tar.gz
+SOURCES/nbde_server-1.1.1.tar.gz
+SOURCES/network-be8e38a5c614ab7438508b81435f0a1407039406.tar.gz
+SOURCES/postfix-1.1.2.tar.gz
+SOURCES/selinux-1.3.3.tar.gz
+SOURCES/ssh-1.1.3.tar.gz
+SOURCES/storage-1.6.4.tar.gz
+SOURCES/timesync-1.6.3.tar.gz
+SOURCES/tlog-1.2.2.tar.gz
+SOURCES/vpn-1.2.2.tar.gz
diff --git a/.rhel-system-roles.metadata b/.rhel-system-roles.metadata
index 0348be1..e049213 100644
--- a/.rhel-system-roles.metadata
+++ b/.rhel-system-roles.metadata
@@ -1,19 +1,24 @@
-81dc493a73559dc310a806c8dad6c310f2456512 SOURCES/ansible-sshd-1c5c48835e01adc176febf945e1fd36b7d9af7fd.tar.gz
-88baab8db9cba232b8deb8c690dccf2d3ef77b31 SOURCES/auto-maintenance-2dd50c8a16af647e4c7a768c481335e97735958a.tar.gz
-b677782b53c4ffe790528b4b2c12f31b07523b4c SOURCES/certificate-1.1.0.tar.gz
-1dea114d52dd032bde01a2a64a9b8233daeaa8dc SOURCES/crypto_policies-1.2.0.tar.gz
-d3c6ec22b1e60ad3b53b07009ac54e946355aa75 SOURCES/ha_cluster-1.3.0.tar.gz
-3e3e61b4a8fecc8fb649ab32a3751bd3a3930281 SOURCES/kdump-1.1.0.tar.gz
-90ea8d850a2c46988e4128df36c1254b787d2fb7 SOURCES/kernel_settings-1.1.0.tar.gz
-61127d1b542bf7501ca16834c1716cb01883abfa SOURCES/logging-1.5.1.tar.gz
-170825f78241811a16095f795a93cc9144c39a98 SOURCES/metrics-1.3.1.tar.gz
-f3298859354c92921a3b68fa76f877d4596915d6 SOURCES/nbde_client-1.1.0.tar.gz
-a2c85f6a850285c8afb8635de0cbbb7eb2b46530 SOURCES/nbde_server-1.1.0.tar.gz
-73207015b9e48cd2bdf86fab68f8f34e2181a94b SOURCES/network-1.4.0.tar.gz
-8f10d7be6d7ea3d855cf5d22f32b5ba7bb8302be SOURCES/postfix-1.1.0.tar.gz
-0f6894033fc2110eac6b81b5e6b4ca9ca0af6632 SOURCES/selinux-1.3.0.tar.gz
-b5e0786216e22508435c13b4da7b6fcce4ad82fe SOURCES/ssh-1.1.0.tar.gz
-5820c668d774e9a267011376138cca5a64fb23dd SOURCES/storage-1.6.1.tar.gz
-7bf364246b52dd8df3de6b6c9bf4553410983439 SOURCES/timesync-1.6.0.tar.gz
-ad38181af7223caa21b602e91d0feeb9085451e0 SOURCES/tlog-1.2.0.tar.gz
-9f91e40a6657e262893f85158706934954bcbcb2 SOURCES/vpn-1.2.0.tar.gz
+2ab6e8b033f65ed628f2f2ae41863e48da5fa96c SOURCES/ansible-netcommon-2.4.0.tar.gz
+d2d2382c38eaf34d2295aba2aa4652d75ebbaeef SOURCES/ansible-posix-1.3.0.tar.gz
+a4d4556cf6628e87fa62dec6c46099338b499930 SOURCES/ansible-sshd-214df35c0bee77b5d69f49c2da269251d451b28f.tar.gz
+6d9e4b17166cc77ec1bb5c15173aa9cc97de9ac5 SOURCES/auto-maintenance-ae7a7b58983c6e1c9fb5eb930777de0d423dffeb.tar.gz
+48ee051a3dc5d94acef11434b77066a863b8bf75 SOURCES/certificate-1.1.1.tar.gz
+777115229ca1eec1641b6c2c3734099bf396705a SOURCES/cockpit-1.1.2.tar.gz
+164207c245bc6aaab981a4bcee36825793547bb7 SOURCES/community-general-4.1.0.tar.gz
+b1d2ff872e38037d66b41f732a3eb4bf07a78a83 SOURCES/crypto_policies-1.2.2.tar.gz
+ad6fbce3c545d6c5417b9d349a45e4b1bd4a4f87 SOURCES/firewall-1.0.1.tar.gz
+3059f16ceeb7b38468960b04e5afc92c20194956 SOURCES/ha_cluster-1.3.2.tar.gz
+1e7f3bc316ba5c2c6a7bda6f4f1d870c6966f95a SOURCES/kdump-1.2.0.tar.gz
+eb398c8dea24ee52d87ba1016ec741ede573b156 SOURCES/kernel_settings-1.1.2.tar.gz
+46f1b0eef0cb5030fa62b52301d22350b0a332e0 SOURCES/logging-1.6.1.tar.gz
+e5d990048b0b5acbe3850dfde92b6904336624d1 SOURCES/metrics-1.4.0.tar.gz
+9b264d24e443bcd6d6bba157fab223e936ebeedb SOURCES/nbde_client-1.1.1.tar.gz
+45bfd081e56f1930d10320f1cfa4dbb895103f37 SOURCES/nbde_server-1.1.1.tar.gz
+efc46b0d6b1f31f347eee09537b5db9d7652299d SOURCES/network-be8e38a5c614ab7438508b81435f0a1407039406.tar.gz
+c80fe90d271a3ecc6196901377a855445916ed2f SOURCES/postfix-1.1.2.tar.gz
+054704dc3e667ab460d96139f48efb3cf96e7ace SOURCES/selinux-1.3.3.tar.gz
+18af1805c7a6c078f0c2ced13ab0cd0ee89a74a5 SOURCES/ssh-1.1.3.tar.gz
+32fe83a0a12ce85bc7149c2b0e496cb4131ea8ad SOURCES/storage-1.6.4.tar.gz
+f49adc8f4af4c4d25bcd1d676e29fdfec9c50210 SOURCES/timesync-1.6.3.tar.gz
+cc5577b907111e9c641f956f60f4cb4d8cb95d0b SOURCES/tlog-1.2.2.tar.gz
+070aa3eecd664187f9f10e94fc857b36e42450b6 SOURCES/vpn-1.2.2.tar.gz
diff --git a/SPECS/rhel-system-roles.spec b/SPECS/rhel-system-roles.spec
index e0d9256..25ddf1d 100644
--- a/SPECS/rhel-system-roles.spec
+++ b/SPECS/rhel-system-roles.spec
@@ -1,7 +1,14 @@
+# NOTE - may revisit this once ansible-core is in 8.6
+%if 0%{?fedora} || 0%{?rhel} >= 9
+%bcond_without ansible
+%global ansible_build_dep ansible-core >= 2.11.0
+%else
 %if 0%{?rhel} && ! 0%{?epel}
 %bcond_with ansible
 %else
 %bcond_without ansible
+%global ansible_build_dep ansible >= 2.9.10
+%endif
 %endif
 
 %bcond_with collection_artifact
@@ -21,11 +28,11 @@ Name: linux-system-roles
 %endif
 Url: https://github.com/linux-system-roles
 Summary: Set of interfaces for unified system management
-Version: 1.7.3
-Release: 2%{?dist}
+Version: 1.11.0
+Release: 1%{?dist}
 
 #Group: Development/Libraries
-License: GPLv3+ and MIT and BSD
+License: GPLv3+ and MIT and BSD and Python
 %global installbase %{_datadir}/linux-system-roles
 %global _pkglicensedir %{_licensedir}/%{name}
 %global rolealtprefix linux-system-roles.
@@ -45,7 +52,6 @@ License: GPLv3+ and MIT and BSD
 %global collection_namespace fedora
 %global collection_name linux_system_roles
 %endif
-%global subrole_prefix "private_${role}_subrole_"
 
 %global collection_version %{version}
 
@@ -66,7 +72,7 @@ License: GPLv3+ and MIT and BSD
 
 
 %if %{with ansible}
-BuildRequires: ansible >= 2.9.10
+BuildRequires: %{ansible_build_dep}
 %endif
 
 %if %{without ansible}
@@ -109,79 +115,85 @@ BuildRequires: ansible >= 2.9.10
 
 #%%defcommit 1 14314822b529520ac12964e0d2938c4bb18ab895
 %global rolename1 postfix
-%deftag 1 1.1.0
+%deftag 1 1.1.2
 
 #%%defcommit 2 9fe6eb36772e83b53dcfb8ceb73608fd4f72eeda
 %global rolename2 selinux
-%deftag 2 1.3.0
+%deftag 2 1.3.3
 
-#%%defcommit 3 8db8f9ed9088432bac7abf68f1b284475a3baa38
+#%%defcommit 3 cbe4bf262bffae3bf53e531662237741954c4182
 %global rolename3 timesync
-%deftag 3 1.6.0
+%deftag 3 1.6.3
 
 #%%defcommit 4 02fc72b482e165472624b2f68eecd2ddce1d93b1
 %global rolename4 kdump
-%deftag 4 1.1.0
+%deftag 4 1.2.0
 
-#%%defcommit 5 b08a0b3748ee87aa3bdbcf1f0b7e41ef4971bbee
+%defcommit 5 be8e38a5c614ab7438508b81435f0a1407039406
 %global rolename5 network
-%deftag 5 1.4.0
+#%%deftag 5 1.4.0
 
-#%%defcommit 6 b3b456183edb7b8aa6ceff7ce667d8e22009ef6a
+#%%defcommit 6 50d2b8ccc98a8f4cb9d1d550d21adc227181e9fa
 %global rolename6 storage
-%deftag 6 1.6.1
+%deftag 6 1.6.4
 
 #%%defcommit 7 0673d842fb32c437501e2aada2e38921da98e115
 %global rolename7 metrics
-%deftag 7 1.3.1
+%deftag 7 1.4.0
 
 #%%defcommit 8 2b9e53233ee3a68bdb532e62f289733e436a6106
 %global rolename8 tlog
-%deftag 8 1.2.0
+%deftag 8 1.2.2
 
 #%%defcommit 9 9373303b98e09ef38df7afc8d06e5e55812096c7
 %global rolename9 kernel_settings
-%deftag 9 1.1.0
+%deftag 9 1.1.2
 
 #%%defcommit 10 20dd3e5520ca06dcccaa9b3f1fb428d055e0c23f
 %global rolename10 logging
-%deftag 10 1.5.1
+%deftag 10 1.6.1
 
 #%%defcommit 11 c57d0b1f3384c525738fa26ba4bdca485e162567
 %global rolename11 nbde_server
-%deftag 11 1.1.0
+%deftag 11 1.1.1
 
 #%%defcommit 12 bef2fad5e365712d1f40e53662490ba2550a253f
 %global rolename12 nbde_client
-%deftag 12 1.1.0
+%deftag 12 1.1.1
 
 #%%defcommit 13 310fc53db04e8d3134524afb7a89b0477a2ffb83
 %global rolename13 certificate
-%deftag 13 1.1.0
+%deftag 13 1.1.1
 
 #%%defcommit 14 b2a9857ac661fa32e66666e444b73bfdb34cdf95
 %global rolename14 crypto_policies
-%deftag 14 1.2.0
+%deftag 14 1.2.2
 
 %global forgeorg15 https://github.com/willshersystems
 %global repo15 ansible-sshd
 %global rolename15 sshd
-%defcommit 15 1c5c48835e01adc176febf945e1fd36b7d9af7fd
-#%%deftag 15 v0.13.1
+%defcommit 15 214df35c0bee77b5d69f49c2da269251d451b28f
+#%%deftag 15 v0.14.1
 
 #%%defcommit 16 59b9fd7b25607d8bd33bdb082748955f2652846a
 %global rolename16 ssh
-%deftag 16 1.1.0
+%deftag 16 1.1.3
 
 #%%defcommit 17 f901239cb91878719c9e7461760ef8d4789d626d
 %global rolename17 ha_cluster
-%deftag 17 1.3.0
+%deftag 17 1.3.2
 
 #%%defcommit 18 5f6cb73e6753fbdbb219b7d3079f0378b2d3bdb3
 %global rolename18 vpn
-%deftag 18 1.2.0
+%deftag 18 1.2.2
+
+%global rolename19 firewall
+%deftag 19 1.0.1
+
+%global rolename20 cockpit
+%deftag 20 1.1.2
 
-%global mainid 2dd50c8a16af647e4c7a768c481335e97735958a
+%global mainid ae7a7b58983c6e1c9fb5eb930777de0d423dffeb
 Source: %{url}/auto-maintenance/archive/%{mainid}/auto-maintenance-%{mainid}.tar.gz
 Source1: %{archiveurl1}
 Source2: %{archiveurl2}
@@ -201,6 +213,17 @@ Source15: %{archiveurl15}
 Source16: %{archiveurl16}
 Source17: %{archiveurl17}
 Source18: %{archiveurl18}
+Source19: %{archiveurl19}
+Source20: %{archiveurl20}
+
+# Collection tarballs from Automation Hub
+# Not used on Fedora.
+Source801: ansible-posix-1.3.0.tar.gz
+Source802: ansible-netcommon-2.4.0.tar.gz
+
+# Collection tarballs from Galaxy
+# Not used on Fedora.
+Source901: community-general-4.1.0.tar.gz
 
 # Script to convert the collection README to Automation Hub.
 # Not used on Fedora.
@@ -226,7 +249,6 @@ BuildRequires: highlight
 BuildRequires: python3
 %if 0%{?fedora} || 0%{?rhel} >= 8
 BuildRequires: python3dist(ruamel.yaml)
-
 Requires: python3-jmespath
 Requires: python3-netaddr
 %else
@@ -267,7 +289,19 @@ Collection artifact for %{name}. This package contains %{collection_namespace}-%
 %endif
 
 %prep
-%setup -q -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -n %{getarchivedir 0}
+%setup -q -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20 -n %{getarchivedir 0}
+
+for file in %_sourcedir/*.tar.gz; do
+    if [[ "$file" =~ %_sourcedir/([^-]+)-([^-]+)-(.+).tar.gz ]]; then
+        ns=${BASH_REMATCH[1]}
+        name=${BASH_REMATCH[2]}
+        ver=${BASH_REMATCH[3]}
+        mkdir -p .external/$ns/$name
+        pushd .external/$ns/$name > /dev/null
+        tar xfz "$file"
+        popd > /dev/null
+    fi
+done
 
 declare -A ROLESTODIR=(%{rolestodir})
 for rolename in %{rolenames}; do
@@ -301,6 +335,76 @@ sed -r -i -e "s/ willshersystems.sshd/ linux-system-roles.sshd/" tests/*.yml exa
 sed -r -i -e "s/min_ansible_version: 2.8/min_ansible_version: 2.9/" meta/main.yml
 cd ..
 
+cd %{rolename7}
+# metrics roles dir is a symlink to the vendored dir.
+# rpm upgrade doesn't like the symlink.  Replace the
+# symlink with the real dir
+rolesdir=$(pwd)/roles
+realrolesdir=$(realpath "$rolesdir")
+if [ "$rolesdir" != "$realrolesdir" ]; then
+    rm -rf roles
+    mv "$realrolesdir" .
+    rm -rf vendor
+fi
+cd ..
+
+%if 0%{?rhel}
+# Unpack tar.gz to retrieve to be vendored modules and place them in the roles library.
+# ansible.posix:
+#   - library:
+#     - Module selinux and seboolean for the selinux role
+#     - Module mount for the storage role
+declare -A module_map=( ["selinux.py"]="selinux" ["seboolean.py"]="selinux"  ["mount.py"]="storage" )
+for module in "${!module_map[@]}"; do
+  role="${module_map[${module}]}"
+  if [ ! -d $role/library ]; then
+    mkdir $role/library
+  fi
+  cp -pL .external/ansible/posix/plugins/modules/$module $role/library/$module
+  sed -i -e ':a;N;$!ba;s/description:\n\( *\)/description:\n\1- WARNING: Do not use this module directly! It is only for role internal use.\n\1/' -e "s/ansible_collections.ansible.posix.plugins.module_utils/ansible.module_utils.${role}_lsr/" $role/library/$module
+done
+
+# ansible.posix:
+#   - module_utils:
+#     - Module_util mount for the storage role
+module_map=( ["mount.py"]="storage" )
+for module in "${!module_map[@]}"; do
+  role="${module_map[${module}]}"
+  if [ ! -d $role/module_utils/${role}_lsr ]; then
+    mkdir -p $role/module_utils/${role}_lsr
+  fi
+  cp -pL .external/ansible/posix/plugins/module_utils/$module $role/module_utils/${role}_lsr/$module
+  sed -i -e ':a;N;$!ba;s/description:\n\( *\)/description:\n\1- WARNING: Do not use this module directly! It is only for role internal use.\n\1/' $role/library/$module
+done
+
+# ansible.netcommon:
+#   - filter_plugins:
+#     - Filter ipaddr for the vpn role
+declare -A module_map=( ["ipaddr.py"]="vpn" )
+for module in "${!module_map[@]}"; do
+  role="${module_map[${module}]}"
+  if [ ! -d $role/filter_plugins ]; then
+    mkdir $role/filter_plugins
+  fi
+  cp -pL .external/ansible/netcommon/plugins/filter/$module $role/filter_plugins/$module
+  sed -i -e ':a;N;$!ba;s/description:\n\( *\)/description:\n\1- WARNING: Do not use this module directly! It is only for role internal use.\n\1/' $role/filter_plugins/$module
+done
+
+# community.general:
+#   - library:
+#     - Module seport, sefcontext and selogin for the selinux role rolename2
+module_map=( ["seport.py"]="selinux" ["sefcontext.py"]="selinux"  ["selogin.py"]="selinux" )
+for module in "${!module_map[@]}"; do
+  role="${module_map[${module}]}"
+  if [ ! -d $role/library ]; then
+    mkdir $role/library
+  fi
+  cp -pL .external/community/general/plugins/modules/$module $role/library/$module
+  ls -alrtF $role/library/$module
+  sed -i -e ':a;N;$!ba;s/description:\n\( *\)/description:\n\1- WARNING: Do not use this module directly! It is only for role internal use.\n\1/' $role/library/$module
+done
+%endif
+
 # Replacing "linux-system-roles.rolename" with "rhel-system-roles.rolename" in each role
 %if "%{roleprefix}" != "linux-system-roles."
 for rolename in %{rolenames}; do
@@ -346,17 +450,41 @@ mkdir .collections
 %if 0%{?rhel}
 # Convert the upstream collection readme to the downstream one
 %{SOURCE998} lsr_role2collection/collection_readme.md
+./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" \
+                      "Red Hat Enterprise Linux System Roles Ansible Collection" \
+                      "https://linux-system-roles.github.io" \
+                      "https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/administration_and_configuration_tasks_using_system_roles_in_rhel" \
+                      "https://access.redhat.com/articles/3050101" \
+                      "https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%208&component=rhel-system-roles" \
+                      > galaxy.yml.tmp
+%else
+./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" \
+                      "Linux System Roles Ansible Collection" \
+                      > galaxy.yml.tmp
 %endif
-./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" "Red Hat Enterprise Linux System Roles Ansible Collection" > galaxy.yml.tmp
 mv galaxy.yml.tmp galaxy.yml
 
+includes=""
 for role in %{rolenames}; do
-    python3 lsr_role2collection.py --role "$role" --src-path "$role" \
-        --src-owner %{name} --subrole-prefix %{subrole_prefix} --dest-path .collections \
-        --readme lsr_role2collection/collection_readme.md \
-        --namespace %{collection_namespace} --collection %{collection_name}
+    includes="$includes --include $role"
 done
 
+LANG=en_US.utf-8 LC_ALL=en_US.utf-8 python3 release_collection.py --galaxy-yml galaxy.yml \
+    --src-path $(pwd) --dest-path $(pwd)/.collections $includes --force --no-update \
+	--src-owner %{name} --skip-git --skip-check --debug
+
+%if 0%{?rhel}
+# Convert vendored plugins to FQCN for collection
+#   ansible.netcommon:
+#     - filter_plugins:
+#       - Filter ipaddr for the vpn role
+declare -A module_map=( ["ipaddr"]="vpn" )
+for module in "${!module_map[@]}"; do
+  role="${module_map[${module}]}"
+  find .collections/ansible_collections/%{collection_namespace}/%{collection_name}/*/vpn \( -iname "*.yml" -o -iname "*.j2" \) -exec sed -i -e "s/\<$module\>/%{collection_namespace}.%{collection_name}.&/g" {} \;
+done
+%endif
+
 # copy requirements.txt and bindep.txt from auto-maintenance/lsr_role2collection
 if [ -f lsr_role2collection/collection_requirements.txt ]; then
     cp lsr_role2collection/collection_requirements.txt \
@@ -367,24 +495,6 @@ if [ -f lsr_role2collection/collection_bindep.txt ]; then
        .collections/ansible_collections/%{collection_namespace}/%{collection_name}/bindep.txt
 fi
 
-rm -f .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/sanity/ignore-2.9.txt
-# Merge .sanity-ansible-ignore-2.9-ROLENAME.txt into tests/sanity/ignore-2.9.txt
-mkdir -p .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/sanity
-for role in %{rolenames}; do
-    if [ -f .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.sanity-ansible-ignore-2.9-"$role".txt ];
-    then
-      cat .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.sanity-ansible-ignore-2.9-"$role".txt \
-        >> .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/sanity/ignore-2.9.txt
-      rm -f .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.sanity-ansible-ignore-*-"$role".txt
-    fi
-done
-
-# removing dot files/dirs
-rm -r .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.[A-Za-z]*
-
-cp -p galaxy.yml lsr_role2collection/.ansible-lint \
-    .collections/ansible_collections/%{collection_namespace}/%{collection_name}
-
 # Remove table of contents from logging README.md
 # It is not needed for html and AH/Galaxy
 sed -i -e 's/^\(## Table of Contents\)/## Background\n\1/' \
@@ -623,6 +733,94 @@ fi
 %endif
 
 %changelog
+* Thu Dec 2 2021 Rich Megginson <rmeggins@redhat.com> - 1.11.0-1
+- timesync - fix ansible 2.12 issues, service_facts issues
+  Resolves rhbz#2012316 (EL8)
+  Resolves rhbz#2012298 (EL9)
+- timesync - Failure related to missing ntp/ntpd package/service on RHEL-9 host
+  Resolves rhbz#2029463 (EL9)
+- logging - add test case for immark quoting issue
+  Resolves rhbz#2021678 (EL8)
+  Resolves rhbz#2021676 (EL9)
+- cockpit - use existing cert - cockpit_cert, cockpit_private_key
+  Resolves rhbz#2021661 (EL8)
+  Resolves rhbz#2021028 (EL9)
+- storage - fix ansible 2.12 issues, service_facts issues; workaround lvm, udev issues in tests
+  Resolves rhbz#2012316 (EL8)
+  Resolves rhbz#2012298 (EL9)
+- ssh - tests_all_options.yml: "assertion": "'StdinNull yes' in config.content | b64decode ", failure
+  Resolves rhbz#2029614 (EL8)
+  Resolves rhbz#2029427 (EL9)
+- kdump - support reboot required and reboot ok
+  Resolves rhbz#2029605 (EL8)
+  Resolves rhbz#2029602 (EL9)
+- metrics - sync with latest ansible-pcp
+  Resolves rhbz#2012316 (EL8)
+  Resolves rhbz#2012298 (EL9)
+- sshd - should detect FIPS mode and handle tasks correctly in FIPS mode
+  Resolves rhbz#1979714 (EL8)
+  Resolves rhbz#2029634 (EL9)
+
+* Mon Nov 8 2021 Rich Megginson <rmeggins@redhat.com> - 1.10.0-1
+- add cockpit role
+  Resolves rhbz#2021661 (EL8)
+  Resolves rhbz#2021028 (EL9)
+- add firewall role
+  Resolves rhbz#1854988 (EL8)
+  Resolves rhbz#2021665 (EL9)
+- firewall - add ability to add-source
+  Resolves rhbz#1932678 (EL8)
+  Resolves rhbz#2021667 (EL9)
+- firewall - allow user defined zones
+  Resolves rhbz#1850768 (EL8)
+  Resolves rhbz#2021669 (EL9)
+- firewall - allow specifying the zone
+  Resolves rhbz#1850753 (EL8)
+  Resolves rhbz#2021670 (EL9)
+- updates for ansible 2.12 support
+  Resolves rhbz#2012316 (EL8)
+  Resolves rhbz#2012298 (EL9)
+- update community.general to 4.0.1
+  Resolves rhbz#2006081 (EL8)
+  Resolves rhbz#2006076 (EL9)
+- network - Allow to specify PCI address to configure profiles
+  Resolves rhbz#1695634 (EL8)
+  Resolves rhbz#1999162 (EL9)
+- network - support wifi Enhanced Open (OWE)
+  Resolves rhbz#1993379 (EL8)
+  Resolves rhbz#1993377 (EL9)
+- network - support WPA3 Simultaneous Authentication of Equals(SAE)
+  Resolves rhbz#1993311 (EL8)
+  Resolves rhbz#1993304 (EL9)
+- network - RFE: Support ignoring default gateway retrieved by DHCP/IPv6-RA
+  Resolves rhbz#1897565 (EL8)
+  Resolves rhbz#1978773 (EL9)
+- network - Update network system role to reflect that network teaming is deprecated in RHEL 9
+  Resolves rhbz#1897565 (EL8)
+  Resolves rhbz#1999770 (EL9)
+- selinux - fails linit rules role-name and unnamed-task
+  Resolves rhbz#1974000 (EL8)
+  Resolves rhbz#2021675 (EL9)
+- kernel_settings - ansible_managed | comment BZs:
+  Resolves rhbz#2006230 (EL9)
+  Resolves rhbz#2006231 (EL8)
+  Resolves rhbz#2006233 (EL7)
+- logging - logging role missing quotes for immark module interval value
+  Resolves rhbz#2021678 (EL8)
+  Resolves rhbz#2021676 (EL9)
+- logging - Add user and password
+  Resolves rhbz#2010327 (EL8)
+  Resolves rhbz#1990490 (EL9)
+- logging - Performance improvement
+  Resolves rhbz#2005727 (EL8)
+  Resolves rhbz#2004303 (EL9)
+- nbde_client - add regenerate-all to the dracut command
+  Resolves rhbz#2021682 (EL8)
+  Resolves rhbz#2021681 (EL9)
+- certificate - Fix certificate permissions with "group" option
+  Resolves rhbz#2021683 (EL8)
+  Resolves rhbz#2021025 (EL9)
+
 * Thu Aug 26 2021 Rich Megginson <rmeggins@redhat.com> - 1.7.3-2
 - selinux - tag tests_selinux_disabled.yml with tests::avc
   Resolves rhbz#1996315 (EL9)