Um in einem Ansible Playbook zu ermitteln, welcher Paketmanager auf einem Linux System verwendet wird (apt oder dnf), kannst du die Variable
ansible_pkg_mgr
verwenden. Diese Variable gibt den Namen des Paketmanagers auf dem Zielhost zurück. Basierend auf dem Wert dieser Variable kannst du dann entsprechende Aufgaben ausführen.
---
- name: Check Package Manager
  hosts: all
  gather_facts: yes
  tasks:
    - name: Check which package manager is in use
      debug:
        msg: "Package manager in use: {{ ansible_pkg_mgr }}"
Je nachdem, welcher Paketmanager verwendet wird, kannst du dann weitere Aufgaben hinzufügen, die spezifisch für apt oder dnf sind.
    - name: Install a package using apt
      apt:
        name: my-package
        state: present
      when: ansible_pkg_mgr == 'apt'
    - name: Install a package using dnf
      dnf:
        name: my-package
        state: present
      when: ansible_pkg_mgr == 'dnf'