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"
|
- ansible_facts['distribution'] == "Debian"
|
||||||
tags: apt
|
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
|
# tags supported inside extrepo.yml
|
||||||
#
|
#
|
||||||
# extrepo
|
# extrepo
|
||||||
|
|||||||
Reference in New Issue
Block a user