In order to run the dnf module you need to use the system Python for which the Python dnf bindings (python3-dnf) are available. I believe that for AlmaLinux 8 the system Python version is 3.6 which also means that you need to run the version of ansible-core that supports running Python 3.6 on target machines, the last such version is ansible-core2.16, see Releases and maintenance — Ansible Community Documentation.
My ansible-core is 2.18.7 but more invest reveal that the OS were update form CentOS7 to Almalinux8, and the issue could be related to “alternatives” configuration. I’m not confident with the “alternatives” configuration
If I launch my script on a fresh installed workstation on Alamlinux8 the installation pass
That’s sound really strange for me, the OS upgrade could affect the system ?
Martin is correct, you cannot use ansible-core>=2.17 with the yum/dnf modules on EL8 and older OS systems (RHEL/CentOS/Alma/Rocky, etc). The OS upgrade and alternatives configuration have nothing to do with it, and in fact shouldn’t have worked before the CentOS7 → AlmaLinux8 upgrade either.
Yep, you can use command or shell instead if you must use newer Ansible.
However, you can use different versions of Ansible side-by-side using venv. Pipx and Pipenv are both good for this. Or you can use ansible-navigator and use EE’s with specific Ansible versions. If you use AWX/AAP, you can also specify the EE’s to use there as well.
Just want to make sure you know that you have options.