3 Pluspunkte 0 Minuspunkte
Ich habe Linux Server wovon manche apt verwenden und manche dnf. Wie kann ich in einem Playbook herausfinden welcher Paket Manager auf dem jeweiligen System verwendet wird?
von  

1 Antwort

2 Pluspunkte 0 Minuspunkte

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'
von (706 Punkte)