---

# --- Nur fürs Bootstrap, damit Python für Ansible verfügbar ist ---
- name: Ensure python3 and python3-apt are present (bootstrap)
  ansible.builtin.raw: |
    test -x /usr/bin/python3 || (apt-get -y update && apt-get install -y python3)
    test -x /usr/bin/python3 && (apt-get -y update && apt-get install -y python3-apt)
  changed_when: false


# Ab dem Zeitpunkt in dem Python auf dem Zielsystem vorhanden ist,
# kann Ansible wieder normale Module (wie apt, file, service, copy, usw.) benutzen.
# 
# Aber:
# Da gather_facts: false gesetzt war, hat Ansible bis hierher keine Systeminformationen (Facts) wie:
# 
#     ansible_distribution
# 
#     ansible_fqdn
# 
#     ansible_memtotal_mb
# 
#     ansible_interfaces
# 
#     etc.
#     eingesammelt.
# 
# Rufe das 'setup'-Modul manuell auf mit:
#
#    - name: Enable facts now that Python exists
#       ansible.builtin.setup:
# 
# Damit holt Ansible nachträglich die Facts, jetzt, wo Python verfügbar ist.
#
- name: Enable facts now that Python exists
  ansible.builtin.setup:

# --- Ab hier normale Module verwenden ---
- name: Update APT cache
  ansible.builtin.apt:
    update_cache: true
    cache_valid_time: "{{ apt_update_cache_valid_time | default(3600) }}"
  tags: [ansible-dependencies]

- name: Ensure aptitude is present
  ansible.builtin.apt:
    name: aptitude
    state: present
  tags: [ansible-dependencies]

- name: dpkg --configure -a
  ansible.builtin.command: dpkg --configure -a
  register: dpkg_out
  # "changed" nur, wenn es wirklich etwas ausgibt/konfiguriert
  changed_when: dpkg_out.stdout is defined and dpkg_out.stdout | length > 0
  when: apt_dpkg_configure | bool
  tags: [ansible-dependencies]

- name: apt upgrade
  ansible.builtin.apt:
    upgrade: "{{ apt_upgrade_type }}"
    update_cache: true
    dpkg_options: "{{ apt_upgrade_dpkg_options | join(',') }}"
  when: apt_upgrade | bool
  tags: [ansible-dependencies]

- name: apt install ansible dependencies
  ansible.builtin.apt:
    name: "{{ apt_ansible_dependencies_trixie }}"
    state: "{{ apt_install_state }}"
  tags: [ansible-dependencies]

