add extrepo.yml: Workaround für einen ifupdown-Paketbug.
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
---
|
||||
# Workaround für einen ifupdown-Paketbug: /etc/network/if-up.d/resolved verwendet
|
||||
# "return" auf oberster Ebene, was unter dash/bash fehlschlägt, wenn das Skript
|
||||
# von run-parts direkt ausgeführt (nicht gesourced) wird. Das lässt "ifup"/
|
||||
# "systemctl restart networking" abbrechen, bevor Interfaces konfiguriert werden.
|
||||
#
|
||||
# Betroffen nur, wenn:
|
||||
# - das Paket ifupdown installiert ist, UND
|
||||
# - die Datei /etc/network/if-up.d/resolved existiert (d.h. systemd-resolved-
|
||||
# Integration von ifupdown vorhanden)
|
||||
|
||||
- name: ifupdown resolved-Hook prüfen und ggf. patchen (return-Bug)
|
||||
tags:
|
||||
- fix-ifupdown-resolved-hook
|
||||
block:
|
||||
- name: Paketfakten einlesen (für ifupdown-Check)
|
||||
ansible.builtin.package_facts:
|
||||
manager: apt
|
||||
|
||||
- name: Vorhandensein von /etc/network/if-up.d/resolved prüfen
|
||||
ansible.builtin.stat:
|
||||
path: /etc/network/if-up.d/resolved
|
||||
register: _ifupdown_resolved_hook
|
||||
|
||||
# Benötigt das Ansible-Modul community.general.dpkg_divert aus der
|
||||
# Collection "community.general" (nicht Teil von ansible-core). Da es bei
|
||||
# euch keine requirements.yml gibt, muss die Collection einmalig manuell
|
||||
# auf der Ansible-Control-Node installiert werden:
|
||||
#
|
||||
# ansible-galaxy collection install community.general
|
||||
#
|
||||
# Kontrolle, ob/welche Version bereits vorhanden ist:
|
||||
#
|
||||
# ansible-galaxy collection list community.general
|
||||
#
|
||||
# Empfehlung: Sobald eine requirements.yml existiert, dort ergänzen:
|
||||
#
|
||||
# collections:
|
||||
# - name: community.general
|
||||
#
|
||||
# und künftig per "ansible-galaxy collection install -r requirements.yml"
|
||||
# installieren/aktualisieren, statt manuell.
|
||||
- name: ifupdown resolved-Hook divertieren und patchen
|
||||
when:
|
||||
- "'ifupdown' in ansible_facts.packages"
|
||||
- _ifupdown_resolved_hook.stat.exists
|
||||
block:
|
||||
- name: Originaldatei divertieren (dpkg-divert --rename --add)
|
||||
community.general.dpkg_divert:
|
||||
path: /etc/network/if-up.d/resolved
|
||||
state: present
|
||||
rename: true
|
||||
register: _resolved_hook_divert
|
||||
|
||||
- name: Divertierte Version an Originalpfad kopieren (nur beim ersten Lauf)
|
||||
ansible.builtin.copy:
|
||||
src: /etc/network/if-up.d/resolved.distrib
|
||||
dest: /etc/network/if-up.d/resolved
|
||||
remote_src: true
|
||||
force: false
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
|
||||
- name: "Bugfix: return -> exit 0 (Fall 'interface leer')"
|
||||
ansible.builtin.replace:
|
||||
path: /etc/network/if-up.d/resolved
|
||||
regexp: '(if \[ ! "\$interface" \]; then\n\s*)return(\n\s*fi)'
|
||||
replace: '\1exit 0\2'
|
||||
|
||||
- name: "Bugfix: return -> exit 0 (Fall 'interface = lo')"
|
||||
ansible.builtin.replace:
|
||||
path: /etc/network/if-up.d/resolved
|
||||
regexp: '(if \[ "\$interface" = "lo" \]; then\n\s*)return(\n\s*fi)'
|
||||
replace: '\1exit 0\2'
|
||||
@@ -35,6 +35,21 @@
|
||||
- ansible_facts['distribution'] == "Debian"
|
||||
tags: apt
|
||||
|
||||
# Workaround für einen ifupdown-Paketbug: /etc/network/if-up.d/resolved verwendet
|
||||
# "return" auf oberster Ebene, was unter dash/bash fehlschlägt, wenn das Skript
|
||||
# von run-parts direkt ausgeführt (nicht gesourced) wird. Das lässt "ifup"/
|
||||
# "systemctl restart networking" abbrechen, bevor Interfaces konfiguriert werden.
|
||||
#
|
||||
# Betroffen nur, wenn:
|
||||
# - das Paket ifupdown installiert ist, UND
|
||||
# - die Datei /etc/network/if-up.d/resolved existiert (d.h. systemd-resolved-
|
||||
# Integration von ifupdown vorhanden)
|
||||
|
||||
- name: Fix ifupdown resolved-Hook (return-Bug)
|
||||
ansible.builtin.include_tasks: fix-ifupdown-resolved-hook.yml
|
||||
tags:
|
||||
- fix-ifupdown-resolved-hook
|
||||
|
||||
# tags supported inside extrepo.yml
|
||||
#
|
||||
# extrepo
|
||||
|
||||
Reference in New Issue
Block a user