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'