--- # --- # deb822 ist das neue Konfigurationsformats für APT-Quellen (Repositories). # Es basiert auf der Debian Control Syntax nach RFC 822 – daher der Name # --- - name: Nur APT auf Debian 13 (Trixie) migrieren hosts: all become: true gather_facts: true vars: target_release: trixie debian_mirror: "http://deb.debian.org/debian" security_mirror: "http://security.debian.org/debian-security" components: "main contrib non-free non-free-firmware" enable_backports: true # auf false setzen, wenn du keine Backports willst pin_backports_low: true # Backports nur auf Anfrage # Nur manuelle Installation/Upgrade aus Backports: # backports_pin_priority: 100 # # Automatische Updates für bereits installierte Backports-Pakete. # backports_pin_priority: 500 (>= 500) # backports_pin_priority: 100 # 100 = nie automatisch bevorzugen apt_cache_valid_time: 3600 # Für offizielle Debian-Repos brauchst es kein Signed-By, weil debian-archive-keyring # ohnehin systemweit vertrauenswürdig ist. # use_signed_by: true # oder false, wenn du Option A willst # Wenn Signed-By explizit gesetzt werden soll, dann nutze den Keyring-Pfad und stelle sicher, # dass das Paket installiert ist. signed_by_keyring: "/usr/share/keyrings/debian-archive-keyring.gpg" pre_tasks: - name: Sicherstellen, dass wir Debian sind assert: that: - ansible_facts['os_family'] == "Debian" fail_msg: "Dieses Playbook ist nur für Debian geeignet." tasks: - name: Keyring für Debian-Archive sicherstellen (falls Signed-By genutzt) ansible.builtin.apt: name: debian-archive-keyring state: present when: use_signed_by - name: (Optional) Alte /etc/apt/sources.list sichern ansible.builtin.copy: src: /etc/apt/sources.list dest: /etc/apt/sources.list.before-trixie remote_src: true force: false ignore_errors: true - name: Alte /etc/apt/sources.list deaktivieren (leere Kommentar-Datei) ansible.builtin.copy: dest: /etc/apt/sources.list content: | # Verwaltet via Ansible. Repositories liegen in /etc/apt/sources.list.d/*.sources (deb822). # Zielrelease: {{ target_release }} owner: root group: root mode: "0644" - name: Debian-Repo (deb + deb-src) als deb822 anlegen ansible.builtin.template: src: templates/apt-migrate-to-trixie/debian.sources.j2 dest: /etc/apt/sources.list.d/debian.sources owner: root group: root mode: "0644" - name: Security-Repo (deb + deb-src) als deb822 anlegen ansible.builtin.template: src: templates/apt-migrate-to-trixie/security.sources.j2 dest: /etc/apt/sources.list.d/security.sources owner: root group: root mode: "0644" - name: Backports-Repo (optional) als deb822 anlegen/entfernen ansible.builtin.template: src: templates/apt-migrate-to-trixie/backports.sources.j2 dest: /etc/apt/sources.list.d/backports.sources owner: root group: root mode: "0644" when: enable_backports - name: Backports-Repo entfernen wenn deaktiviert ansible.builtin.file: path: /etc/apt/sources.list.d/backports.sources state: absent when: not enable_backports - name: Optionales Backports-Pinning setzen ansible.builtin.template: src: templates/apt-migrate-to-trixie/99-backports.j2 dest: /etc/apt/preferences.d/99-backports owner: root group: root mode: "0644" when: enable_backports and pin_backports_low - name: APT-Cache aktualisieren ansible.builtin.apt: update_cache: yes cache_valid_time: "{{ apt_cache_valid_time }}" - name: Verifikation - zeigen, ob Suites auf trixie stehen ansible.builtin.command: apt-cache policy register: apt_policy changed_when: false - name: Ausgabe anzeigen (nur Info) ansible.builtin.debug: msg: "{{ apt_policy.stdout.split('\n') | select('search', 'trixie') | list | join('\n') }}"