Wireguard Reload instead of restart.

This commit is contained in:
root
2022-06-05 23:11:08 +00:00
parent b88586935b
commit abacb8acc2

13
gen.py
View File

@ -8,8 +8,9 @@ import json
import ipaddress import ipaddress
import argparse import argparse
import configparser import configparser
from subprocess import call
from socket import getfqdn from socket import getfqdn
from os import system, path, mkdir from os import path, mkdir
from base64 import b64encode, b64decode from base64 import b64encode, b64decode
from nacl.public import PrivateKey from nacl.public import PrivateKey
from ipaddress import ip_address from ipaddress import ip_address
@ -104,8 +105,8 @@ class Peer:
_wg.add_attr(helper.server_pub_key, 'Endpoint', f"{helper.server_addr}") _wg.add_attr(helper.server_pub_key, 'Endpoint', f"{helper.server_addr}")
_wg.add_attr(helper.server_pub_key, 'PersistentKeepalive', 10) _wg.add_attr(helper.server_pub_key, 'PersistentKeepalive', 10)
_wg.write_file() _wg.write_file()
system(f'qrencode -r {filename}.conf -o {filename}-qr.png') call(f'qrencode -r {filename}.conf -o {filename}-qr.png', shell=True)
system(f'qrencode -t ansiutf8 -r {filename}.conf -o {filename}-qr.txt') call(f'qrencode -t ansiutf8 -r {filename}.conf -o {filename}-qr.txt', shell=True)
log.info(f"Updated config for {filename}") log.info(f"Updated config for {filename}")
@ -171,20 +172,22 @@ class Helper:
log.info("Couldn't find peer.") log.info("Couldn't find peer.")
return False return False
self.wg.del_peer(pub_key) self.wg.del_peer(pub_key)
filename = f"{client_dir}/{name.replace(' ', '_')}"
call(f"rm -f {filename}*", shell=True)
def add_peer(peer_name): def add_peer(peer_name):
log.info('Generate a new peer config.') log.info('Generate a new peer config.')
helper = Helper(cfg_path=config) helper = Helper(cfg_path=config)
helper.add_peer(peer_name) helper.add_peer(peer_name)
helper.wg.write_file() helper.wg.write_file()
system(f'systemctl restart wg-quick@{config}.service') call("bash -c 'wg syncconf wg0 <(wg-quick strip wg0)'",shell=True)
def del_peer(peer_name): def del_peer(peer_name):
log.info(f'Remove given peer {peer_name}.') log.info(f'Remove given peer {peer_name}.')
helper = Helper(cfg_path=config) helper = Helper(cfg_path=config)
helper.del_peer(peer_name) helper.del_peer(peer_name)
helper.wg.write_file() helper.wg.write_file()
system(f'systemctl restart wg-quick@{config}.service') call("bash -c 'wg syncconf wg0 <(wg-quick strip wg0)'",shell=True)
def update_configs(): def update_configs():
log.info("Update all clients configs.") log.info("Update all clients configs.")