first working version

This commit is contained in:
nd 2020-08-02 15:53:59 +02:00
parent 43e8780420
commit d5858fe595
No known key found for this signature in database
GPG key ID: 21B5CD4DEE3670E9
4 changed files with 19 additions and 10 deletions

View file

@ -3,6 +3,7 @@
name: name:
- wireguard - wireguard
- wireguard-tools - wireguard-tools
- linux-headers-amd64
- name: handle a wireguard network - name: handle a wireguard network
include_tasks: net.yml include_tasks: net.yml

View file

@ -1,5 +1,5 @@
- set_fact: - set_fact:
item: "{{ {}|combine(wireguard.defaults , {'name': conn.name}, item.value, recursive=True) }}" item: "{{ {}|combine(wireguard.defaults , {'name': conn.key}, conn.value, recursive=True) }}"
- name: generate interface config - name: generate interface config
template: template:
@ -9,4 +9,4 @@
- name: generate wireguard config - name: generate wireguard config
template: template:
src: wireguard.conf.j2 src: wireguard.conf.j2
dest: /etc/wireguard//wg_{{ item.name }} dest: /etc/wireguard/wg_{{ item.name }}.conf

View file

@ -1,14 +1,20 @@
auto wg_{{ item.name }} auto wg_{{ item.name }}
iface w_{{ item.name }} inet static iface wg_{{ item.name }} inet static
{% for i in item.ip %} {% for i in item.ip %}
address {{ i }} address {{ i }}
{% endif %} {% endfor %}
pre-up ip link add $IFACE type wireguard pre-up ip link add $IFACE type wireguard || true
pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf
{% for i in item.route %}
up ip route add {{ i }} dev $IFACE
{% endfor %}
post-down ip link del $IFACE post-down ip link del $IFACE
iface w_{{ item.name }} inet6 static iface wg_{{ item.name }} inet6 static
# static IP address # static IP address
{% for i in item.ip6 %} {% for i in item.ip6 %}
address {{ i }} address {{ i }}
{% endif %} {% endfor %}
{% for i in item.route6 %}
up ip -6 route add {{ i }} dev $IFACE
{% endfor %}

View file

@ -1,11 +1,13 @@
[Interface] [Interface]
Address = {{ (item.ip + item.ip6)|join(', ') }}
ListenPort = {{ item.lport }} ListenPort = {{ item.lport }}
PrivateKey = {{ item.privkey }} PrivateKey = {{ item.privkey }}
{% for peer in item.peers %} {% for peername in item.peers %}
{% set peer = {}|combine({'name': peername}, item.peers[peername]) %}
[Peer] [Peer]
# {{ peer.name }}
PublicKey = {{ peer.PublicKey }} PublicKey = {{ peer.PublicKey }}
AllowedIPs = {{ peer.AllowedIPs|join(', ') }} AllowedIPs = {{ peer.AllowedIPs|d(['0.0.0.0/0', '::/0'])|join(', ') }}
{% if peer.Endpoint is defined %}Endpoint = {{ peer.Endpoint }}{% endif %} {% if peer.Endpoint is defined %}Endpoint = {{ peer.Endpoint }}{% endif %}
{% endfor %} {% endfor %}