begin phasing in config of vpn via cdist

This commit is contained in:
Nico Schottelius 2020-12-20 12:20:54 +01:00
commit 054886fd9c
5 changed files with 119 additions and 39 deletions

View file

@ -53,6 +53,29 @@ class WireGuardVPNPool(models.Model):
def __str__(self):
return f"{self.ip_network} (subnets: /{self.subnetwork_mask})"
@property
def wireguard_config(self):
wireguard_config = [
"[Interface]\nListenPort = 51820\nPrivateKey = {self.wireguard_private_key}\n".format(
privatekey=self.wireguard_private_key)
]
peers = []
for vpn in self.wireguardvpn_set.all():
public_key = vpn.wireguard_public_key
peer_network = "{}/{}".format(vpn.address, self.subnetwork_mask)
owner = vpn.owner
peers.append("# Owner: {owner}\n[Peer]\nPublicKey = {public_key}\nAllowedIPs = {peer_network}\n\n".format(
owner=owner,
public_key=public_key,
peer_network=peer_network))
wireguard_config.extend(peers)
return "\n".join(wireguard_config)
class WireGuardVPN(models.Model):
"""