# VPN

Provides VPN access to school network via 

- Wireguard

Which vpn method is used is determined by the variable `vpn`

Choices:
* `"none"` <- (default)
* `"wg"`

## Description / use cases

* This module provides a NetworkManager Config with valid wireguard credentials.
* Private/public keys will be created and configured on wireguard-server.
* After VPN-connection is established, network shares will be connected and printers will be installed too.

## Requirements

* You need to run a wireguard server. For installation see https://codeberg....
* The user, running this playbook, must have access to the wireguard-Server via ssh.

## Example

VPN profile will be created on teacher devices

inventory.yml
```yaml
infrastructure:
  hosts:
    wg_server:
      ansible_host: 10.0.0.16
      ansible_user: ansible

teacherdevices:
  hosts:
    10.0.14.[1..75]
  vars:
    vpn: wg
    wg_endpoint: "203.0.113.1:51820"
    wg_allowed_ips: "10.0.0.0/16;"
    wg_ip_cdr: 24
    wg_dns: "9.9.9.9"
    wg_dns_search: "example.com"
```