From d4f86bf44c0d87edf90dd1488a6ae2512f5f7a99 Mon Sep 17 00:00:00 2001 From: sascha Date: Thu, 25 Jun 2026 21:58:57 +0200 Subject: [PATCH] =?UTF-8?q?wireguard-Rolle=20Pi-OS-tauglich=20+=20Spoke-Co?= =?UTF-8?q?nfig=20f=C3=BCr=20Pi=20'butler'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - wireguard_manage_dns (default true): auf NetworkManager-Hosts (Pi OS) MUSS false sein - resolvconf + 'DNS='-Zeile zerschiessen dort /etc/resolv.conf - host_vars/butler/wireguard.yml: Tunnel-IP 10.200.200.9, Endpoint = echter Hub netcup 194.13.80.132:51820 (NICHT tunnel.sascha-lutz.de = Hetzner/Caddy auf 443), AllowedIPs nur 10.200.200.0/24 (kein Konflikt mit vm_net_routes), DNS-mgmt aus - wireguard-butler.yml: gezieltes Playbook (butler ist nicht in [wireguard]-Node-Gruppe) Co-Authored-By: Claude Opus 4.8 --- host_vars/butler/wireguard.yml | 20 ++++++++++++++++++++ roles/wireguard/tasks/main.yml | 13 +++++++++++-- wireguard-butler.yml | 7 +++++++ 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 host_vars/butler/wireguard.yml create mode 100644 wireguard-butler.yml diff --git a/host_vars/butler/wireguard.yml b/host_vars/butler/wireguard.yml new file mode 100644 index 0000000..27a83bb --- /dev/null +++ b/host_vars/butler/wireguard.yml @@ -0,0 +1,20 @@ +--- +# WireGuard-Spoke für Pi5 'butler' (10.5.85.2) -> Hub VPS (tunnel.sascha-lutz.de) +# Tunnel-IP 10.200.200.3 (war frei zwischen .2 und .4). Der Pi hat KEIN eigenes +# VM-Netz dahinter, daher nur 10.200.200.0/24 in den AllowedIPs (kein Konflikt +# mit den vm_net_routes ins lokale Mgmt-Netz). +wireguard_address: "10.200.200.9/24" +wireguard_allowed_ips: "10.200.200.0/24" +# Echter WG-Hub ist netcup (194.13.80.132:51820), NICHT tunnel.sascha-lutz.de +# (das loest auf Hetzner-IPv6 auf = Caddy-Host mit eigenem wg0 auf Port 443). +wireguard_endpoint: "194.13.80.132:51820" +# Pi OS nutzt NetworkManager fuer DNS - WG darf DNS NICHT verwalten (sonst resolv.conf kaputt) +wireguard_manage_dns: false +wireguard_private_key: !vault | + $ANSIBLE_VAULT;1.1;AES256 + 32373037363138646361376162356164396238663536386563643437376230636533396662633731 + 6532623931636531376466636665333237303133643061370a646332636362396131393661393033 + 65646339383063613433363665613632653662653765383866333030346465303133326365363530 + 3062316630646231650a366230366261343035663530333363303061396133306434343465366665 + 62656138333039313465313034326130326662326338316638356162376235666237656131353265 + 6264646466306537356236323431303262333662363666303137 diff --git a/roles/wireguard/tasks/main.yml b/roles/wireguard/tasks/main.yml index a64563f..8729f89 100644 --- a/roles/wireguard/tasks/main.yml +++ b/roles/wireguard/tasks/main.yml @@ -1,12 +1,19 @@ --- -- name: WireGuard und resolvconf installieren +# wireguard_manage_dns: auf NetworkManager-Hosts (Pi OS) MUSS das false sein - +# resolvconf + 'DNS='-Zeile zerschiessen dort /etc/resolv.conf (NM verwaltet DNS selbst). +- name: WireGuard installieren apt: name: - wireguard - - resolvconf state: present update_cache: yes +- name: resolvconf installieren (nur wenn WG das DNS verwaltet) + apt: + name: resolvconf + state: present + when: wireguard_manage_dns | default(true) + - name: WireGuard Config deployen copy: dest: /etc/wireguard/wg0.conf @@ -14,7 +21,9 @@ [Interface] PrivateKey = {{ wireguard_private_key }} Address = {{ wireguard_address }} + {% if wireguard_manage_dns | default(true) %} DNS = 8.8.8.8 + {% endif %} MTU = {{ wireguard_mtu }} [Peer] diff --git a/wireguard-butler.yml b/wireguard-butler.yml new file mode 100644 index 0000000..485f908 --- /dev/null +++ b/wireguard-butler.yml @@ -0,0 +1,7 @@ +--- +# WireGuard-Spoke gezielt für den Pi 'butler' (nicht in der [wireguard]-Node-Gruppe). +- name: WireGuard auf butler (Pi5) + hosts: butler + become: yes + roles: + - wireguard