Compare commits

...

6 Commits

8 changed files with 83 additions and 67 deletions

View File

@@ -10,6 +10,12 @@ Variable permettant de déployer le module (dkms) de wireguard sur l'hôte qui h
*<span style="text-decoration: underline">Valeur par défaut:</span> aucune* *<span style="text-decoration: underline">Valeur par défaut:</span> aucune*
### wireguard_restart_services
Redémarrer les services si la configuration a été modifiée.
*<span style="text-decoration: underline">Valeur par défaut:</span> `true`*
### wireguard_interfaces ### wireguard_interfaces
Configuration des interfaces de wireguard (`/etc/wireguard/wgX.conf`). Configuration des interfaces de wireguard (`/etc/wireguard/wgX.conf`).

View File

@@ -2,7 +2,7 @@
# defaults file for wireguard # defaults file for wireguard
wireguard_module_host: "" wireguard_module_host: ""
wireguard_listen_port: "" wireguard_restart_services: true
wireguard_interfaces: [] wireguard_interfaces: []
# Exemple: # Exemple:

23
handlers/main.yml Normal file
View File

@@ -0,0 +1,23 @@
---
# handlers file for wireguard
- name: Activer les services
ansible.builtin.systemd:
enabled: true
name: wg-quick@wg{{ item }}.service
become: true
loop: "{{ deploy.results | selectattr('changed', 'equalto', true) | map(attribute='index') }}"
loop_control:
index_var: index
label: wg{{ index }}
- name: Redémarrer les services
ansible.builtin.systemd:
state: restarted
name: wg-quick@wg{{ item }}.service
when: wireguard_restart_services
become: true
loop: "{{ deploy.results | selectattr('changed', 'equalto', true) | map(attribute='index') }}"
loop_control:
index_var: index
label: wg{{ index }}

View File

@@ -1,29 +0,0 @@
---
# tasks file for wireguard
- name: Déployer la configuration des interfaces
ansible.builtin.template:
src: wgN.j2
dest: /etc/wireguard/{{ interface }}.conf
owner: root
group: root
mode: u=rw,g=r,o=r
loop: "{{ wireguard_interfaces }}"
loop_control:
index_var: index
label: "{{ interface }}"
vars:
interface: wg{{ index }}
become: true
register: deploy
- name: Activer et redémarrer les services
ansible.builtin.systemd:
state: restarted
enabled: true
name: wg-quick@wg{{ item }}.service
become: true
loop: "{{ deploy.results | selectattr('changed', 'equalto', true) | map(attribute='index') }}"
loop_control:
index_var: index
label: wg{{ index }}

22
tasks/container.yml Normal file
View File

@@ -0,0 +1,22 @@
---
# tasks file for wireguard
- name: Tâches de gestion du module du noyau
block:
- name: Charger le module du noyau
community.general.modprobe:
name: wireguard
state: present
rescue:
- name: Installer le module du noyau sur l'hôte
ansible.builtin.apt:
update_cache: true
name: wireguard-dkms
become: true
delegate_to: "{{ wireguard_module_host | default(omit, true) }}"
- name: Installer l'outil de configuration
ansible.builtin.apt:
update_cache: true
name: wireguard-tools
become: true

View File

@@ -1,33 +0,0 @@
---
# tasks file for wireguard
- name: Installer le paquet
ansible.builtin.apt:
update_cache: true
name: wireguard
when: wireguard_module_host | length == 0
become: true
register: wireguard_install
- name: Installer le module du noyau sur l'hôte
ansible.builtin.apt:
update_cache: true
name: wireguard-dkms
when: wireguard_module_host | length > 0
delegate_to: "{{ wireguard_module_host }}"
become: true
- name: Installer l'outil de configuration
ansible.builtin.apt:
update_cache: true
name: wireguard-tools
when: wireguard_module_host | length > 0
become: true
#- name: Créer le dossier contenant la configuration
# ansible.builtin.file:
# state: directory
# mode: u=rwx,g=,o=
# path: "{{ wireguard_conf_path }}"
# delegate_to: "{{ wireguard_server_host }}"
# become: true

View File

@@ -1,8 +1,33 @@
--- ---
# tasks file for wireguard # tasks file for wireguard
- name: Importer les tâches d'installation - name: Installer le paquet
ansible.builtin.import_tasks: installation.yml ansible.builtin.apt:
update_cache: true
name: wireguard
when: wireguard_module_host | length == 0
become: true
- name: Importer les tâches de configuration - name: Importer les tâches spécifique aux conteneurs
ansible.builtin.import_tasks: configuration.yml ansible.builtin.import_tasks:
file: container.yml
when: wireguard_module_host | length > 0
- name: Déployer la configuration des interfaces
ansible.builtin.template:
src: wgN.j2
dest: /etc/wireguard/{{ interface }}.conf
owner: root
group: root
mode: u=rw,g=r,o=r
loop: "{{ wireguard_interfaces }}"
loop_control:
index_var: index
label: "{{ interface }}"
vars:
interface: wg{{ index }}
become: true
register: deploy
notify:
- Activer les services
- Redémarrer les services

View File

@@ -11,7 +11,9 @@ Address = {{ item.addresses | join(', ') }}
[Peer] [Peer]
# {{ peer.name }} # {{ peer.name }}
PublicKey = {{ peer.pubkey }} PublicKey = {{ peer.pubkey }}
{% if peer.endpoint is defined %}
Endpoint = {{ peer.endpoint }} Endpoint = {{ peer.endpoint }}
{% endif %}
AllowedIPs = {{ peer.allowed_ips | join(', ') }} AllowedIPs = {{ peer.allowed_ips | join(', ') }}
{% if peer.persistent_keepalive is defined %} {% if peer.persistent_keepalive is defined %}
PersistentKeepalive = {{ peer.persistent_keepalive }} PersistentKeepalive = {{ peer.persistent_keepalive }}