S37: WireGuard mesh config template
- SHA
1e8c8b7ecc966207fe2b20ad6105533df882d0ed- Parents
-
9a4c42b - Tree
95a7a99
1e8c8b7
1e8c8b7ecc966207fe2b20ad6105533df882d0ed9a4c42b
95a7a99| Status | File | + | - |
|---|---|---|---|
| A |
deploy/wireguard/wg0.conf.j2
|
30 | 0 |
deploy/wireguard/wg0.conf.j2added@@ -0,0 +1,30 @@ | ||
| 1 | +## Managed by Ansible. WireGuard mesh used for monitoring traffic | |
| 2 | +## (Prometheus scraping, Loki pushes) so the metrics ports never | |
| 3 | +## have to be exposed on the public interface. The app listens on | |
| 4 | +## 127.0.0.1; the wg0 interface gives the monitoring host a private | |
| 5 | +## route to it. | |
| 6 | +## | |
| 7 | +## One peer per host. Add new hosts by appending a [Peer] block here | |
| 8 | +## and rerunning the role; the address is allocated from 10.50.0.0/24. | |
| 9 | + | |
| 10 | +[Interface] | |
| 11 | +PrivateKey = {{ wireguard_private_key }} | |
| 12 | +Address = {{ wireguard_address }}/24 | |
| 13 | +ListenPort = 51820 | |
| 14 | +SaveConfig = false | |
| 15 | + | |
| 16 | +# Lock the routing table down — only mesh traffic uses wg0. | |
| 17 | +PostUp = iptables -A INPUT -i wg0 -j ACCEPT | |
| 18 | +PostDown = iptables -D INPUT -i wg0 -j ACCEPT | |
| 19 | + | |
| 20 | +{% for peer in wireguard_peers %} | |
| 21 | +[Peer] | |
| 22 | +# {{ peer.hostname }} | |
| 23 | +PublicKey = {{ peer.public_key }} | |
| 24 | +AllowedIPs = {{ peer.address }}/32 | |
| 25 | +{% if peer.endpoint is defined %} | |
| 26 | +Endpoint = {{ peer.endpoint }}:51820 | |
| 27 | +PersistentKeepalive = 25 | |
| 28 | +{% endif %} | |
| 29 | + | |
| 30 | +{% endfor %} | |