94fdbccf4d
fingerprint in config files managed by roles Resolves:rhbz#2185062 ha_cluster - Add possibility to load SBD watchdog kernel modules Resolves:rhbz#2185067 ha_cluster - support for resource and operation defaults Resolves:rhbz#2185065 postgresql - [RFE] system role for PostgreSQL management Resolves:rhbz#2151373 rhc - [RFE] New role for Red Hat subscription management, insights management [rhel-9.3.0] Resolves:rhbz#2179026 ha_cluster - use pcs to setup qdevice certificates if available Resolves:rhbz#2185066 spec: Remove doc fragments from vendored modules Resolves:rhbz#2185002 use ansible-galaxy collection build/install instead of tar Resolves:rhbz#2175324 rhc - RHC system role: activation key registration fails if system is already registered Resolves:rhbz#2186218 selinux - failing test - sshd/tests_firewall_selinux.yml - No package matching 'firewalld' found available, installed or updated Resolves:rhbz#2190501
104 lines
4.5 KiB
PHP
104 lines
4.5 KiB
PHP
# 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
|
|
done
|
|
|
|
# community.general:
|
|
# - library:
|
|
# - Module seport, sefcontext and selogin for the selinux role rolename2
|
|
# - Module ini_file for role tlog
|
|
# - rhc modules
|
|
# - ha_cluster uses modprobe
|
|
module_map=( ["seport.py"]="selinux" ["sefcontext.py"]="selinux" ["selogin.py"]="selinux" ["ini_file.py"]="tlog"
|
|
["redhat_subscription.py"]="rhc" ["rhsm_release.py"]="rhc" ["rhsm_repository.py"]="rhc"
|
|
["modprobe.py"]="ha_cluster" )
|
|
for module in "${!module_map[@]}"; do
|
|
role="${module_map[${module}]}"
|
|
if [ ! -d $role/library ]; then
|
|
mkdir $role/library
|
|
fi
|
|
# version 5.x seems to be broken?
|
|
moduledir=.external/community/general/plugins/modules
|
|
if [ ! -f $moduledir/$module ]; then
|
|
moduledir=.external/community/general/plugins/modules/system
|
|
fi
|
|
if [ ! -f $moduledir/$module ]; then
|
|
moduledir=.external/community/general/plugins/modules/files
|
|
fi
|
|
cp -pL $moduledir/$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
|
|
|
|
# Remove doc_fragments
|
|
sed -i '/^extends_documentation_fragment:/,/^[^ -]/{/^extends/d;/^[ -]/d}' $role/library/$module
|
|
done
|
|
|
|
# containers.podman:
|
|
# - library:
|
|
# - Module podman_container_info, podman_image and podman_play for the podman role
|
|
module_map=( ["podman_container_info.py"]="podman" ["podman_image.py"]="podman" ["podman_play.py"]="podman" )
|
|
for module in "${!module_map[@]}"; do
|
|
role="${module_map[${module}]}"
|
|
if [ ! -d $role/library ]; then
|
|
mkdir $role/library
|
|
fi
|
|
moduledir=.external/containers/podman/plugins/modules
|
|
cp -pL $moduledir/$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/' \
|
|
-e "s/ansible_collections.containers.podman.plugins.module_utils.podman/ansible.module_utils.${role}_lsr/" \
|
|
$role/library/$module
|
|
done
|
|
|
|
# containers.podman:
|
|
# - module_utils:
|
|
# - Module_util common for the podman role
|
|
module_map=( ["common.py"]="podman" )
|
|
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/containers/podman/plugins/module_utils/podman/$module $role/module_utils/${role}_lsr/$module
|
|
done
|
|
|
|
# remove the temporary .external directory after vendoring
|
|
rm -rf .external
|
|
|
|
# Replacing "linux-system-roles.rolename" with "rhel-system-roles.rolename" in each role
|
|
# Replacing "fedora.linux_system_roles." with "redhat.rhel_system_roles" in each role
|
|
# This is for the "roles calling other roles" case
|
|
# for podman, change the FQCN - using a non-FQCN module name doesn't seem to work,
|
|
# even for the legacy role format
|
|
# replace community.general for rhc
|
|
for rolename in %{rolenames}; do
|
|
find $rolename -type f -exec \
|
|
sed -e "s/linux-system-roles[.]${rolename}\\>/%{roleinstprefix}${rolename}/g" \
|
|
-e "s/fedora[.]linux_system_roles[.]/%{collection_namespace}.%{collection_name}./g" \
|
|
-e "s/containers[.]podman[.]/%{collection_namespace}.%{collection_name}./g" \
|
|
-e "s/community[.]general[.]/%{collection_namespace}.%{collection_name}./g" \
|
|
-i {} \;
|
|
done
|