Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-68438

dnf5 module does not work when managed host is Fedora >= 41

    • Icon: Bug Bug
    • Resolution: Not a Bug
    • Icon: Undefined Undefined
    • None
    • rhel-10.0
    • ansible-core
    • None
    • Yes
    • Important
    • rhel-sst-ansible
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • None
    • None
    • None
    • None

      What were you trying to do that didn't work?

      When managed node is running Fedora >= 41, then ansible.builtin.dnf5 fails to install packages.

      What is the impact of this issue to you?

      All attempts to provision manage nodes running Fedora >= 41 are failing if a playbook tries to install any package.

      Please provide the package NVR for which the bug is seen:

      Control node:

      • RHEL-10.0-20241114.0 with ansible-core-2.16.3-4.el10 installed

      Managed node:

      • Fedora-41 (compose from 2024-11-21-10-59)

      How reproducible is this bug?:

      Always

      Steps to reproduce

      1. On RHEL-10 install ansible-core
        # yum install ansible-core -y
        
      1. Create a playbook called i.e. x.yml
        # cat ./x.yml
        - name: DNF5 issue
          hosts: all
        
          tasks:
            - name: Install PCP
              ansible.builtin.package:
                name: pcp-zeroconf
                state: present
        
      1. Store IP address of the managed node running Fedora >= 41 in MNIP variable. I.e.:
        # MNIP=10.0.186.127
        
      1. Run the x.yml playbook
        # ansible-playbook -i ",${MNIP}" ./x.yml
        

      Expected results

      The provided playbook install pcp-zeroconf package on the managed node.

      Actual results

      No package is installed on the managed node. The following error message is printed on the command line:

      TASK [Install PCP] *****************************************************************************
      An exception occurred during task execution. To see the full traceback, use -vvv. The error was: AttributeError: 'Base' object has no attribute 'load_config_from_file'
      fatal: [10.0.186.127]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 10.0.186.127 closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n  File \u001b[35m\"/root/.ansible/tmp/ansible-tmp-1732186867.6468732-16930-10703200943981/AnsiballZ_dnf5.py\"\u001b[0m, line \u001b[35m107\u001b[0m, in \u001b[35m<module>\u001b[0m\r\n    \u001b[31m_ansiballz_main\u001b[0m\u001b[1;31m()\u001b[0m\r\n    \u001b[31m~~~~~~~~~~~~~~~\u001b[0m\u001b[1;31m^^\u001b[0m\r\n  File \u001b[35m\"/root/.ansible/tmp/ansible-tmp-1732186867.6468732-16930-10703200943981/AnsiballZ_dnf5.py\"\u001b[0m, line \u001b[35m99\u001b[0m, in \u001b[35m_ansiballz_main\u001b[0m\r\n    \u001b[31minvoke_module\u001b[0m\u001b[1;31m(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\u001b[0m\r\n    \u001b[31m~~~~~~~~~~~~~\u001b[0m\u001b[1;31m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\r\n  File \u001b[35m\"/root/.ansible/tmp/ansible-tmp-1732186867.6468732-16930-10703200943981/AnsiballZ_dnf5.py\"\u001b[0m, line \u001b[35m47\u001b[0m, in \u001b[35minvoke_module\u001b[0m\r\n    \u001b[31mrunpy.run_module\u001b[0m\u001b[1;31m(mod_name='ansible.modules.dnf5', init_globals=dict(_module_fqn='ansible.modules.dnf5', _modlib_path=modlib_path),\u001b[0m\r\n    \u001b[31m~~~~~~~~~~~~~~~~\u001b[0m\u001b[1;31m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\r\n                     \u001b[1;31mrun_name='__main__', alter_sys=True)\u001b[0m\r\n                     \u001b[1;31m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\r\n  File \u001b[35m\"<frozen runpy>\"\u001b[0m, line \u001b[35m226\u001b[0m, in \u001b[35mrun_module\u001b[0m\r\n  File \u001b[35m\"<frozen runpy>\"\u001b[0m, line \u001b[35m98\u001b[0m, in \u001b[35m_run_module_code\u001b[0m\r\n  File \u001b[35m\"<frozen runpy>\"\u001b[0m, line \u001b[35m88\u001b[0m, in \u001b[35m_run_code\u001b[0m\r\n  File \u001b[35m\"/tmp/ansible_ansible.legacy.dnf5_payload__tnecon4/ansible_ansible.legacy.dnf5_payload.zip/ansible/modules/dnf5.py\"\u001b[0m, line \u001b[35m708\u001b[0m, in \u001b[35m<module>\u001b[0m\r\n  File \u001b[35m\"/tmp/ansible_ansible.legacy.dnf5_payload__tnecon4/ansible_ansible.legacy.dnf5_payload.zip/ansible/modules/dnf5.py\"\u001b[0m, line \u001b[35m704\u001b[0m, in \u001b[35mmain\u001b[0m\r\n  File \u001b[35m\"/tmp/ansible_ansible.legacy.dnf5_payload__tnecon4/ansible_ansible.legacy.dnf5_payload.zip/ansible/modules/dnf5.py\"\u001b[0m, line \u001b[35m487\u001b[0m, in \u001b[35mrun\u001b[0m\r\n\u001b[1;35mAttributeError\u001b[0m: \u001b[35m'Base' object has no attribute 'load_config_from_file'\u001b[0m\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
      

      Notes

      • The same playbook works fine for Fedora <= 40
      • I do not know if the same problem appears when the control node is running RHEL < 10. I just hit this during testing on RHEL-10, so I am reporting it against RHEL-10.

              dsavinea@redhat.com Dimitri Savineau
              jkurik@redhat.com Jan Kurik
              Dimitri Savineau Dimitri Savineau
              Matt Clay Matt Clay
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: