begin phasing in config of vpn via cdist
This commit is contained in:
parent
e2b36c8bca
commit
054886fd9c
5 changed files with 119 additions and 39 deletions
|
|
@ -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):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue