aboutsummaryrefslogtreecommitdiff
path: root/ansible/roles/network/tasks/main.yml
blob: 59f1d71ca16bc7dc04520efe6f8c040eb9e46006 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
- name: "Create iptables configuration direcetory"
  file: path=/etc/iptables/ state=directory

- name: "Deploy iptablesv4 configuration"
  template: src=rules.v4.j2 dest=/etc/iptables/rules.v4

- name: "Deploy iptablesv6 configuration"
  copy: src=rules.v6 dest=/etc/iptables/rules.v6

- name: "Activate IP forwarding"
  sysctl:
    name: net.ipv4.ip_forward
    value: "1"
    sysctl_set: yes

# Wireguard configuration
- name: "Enable backports repository"
  apt_repository:
    repo: deb http://deb.debian.org/debian buster-backports main
    state: present

- name: "Install wireguard"
  apt:
    name:
      - wireguard
      - wireguard-tools
      - "linux-headers-{{ ansible_kernel }}"
    state: present

- name: "Create wireguard configuration direcetory"
  file: path=/etc/wireguard/ state=directory

- name: "Check if wireguard private key exists"
  stat: path=/etc/wireguard/privkey
  register: wireguard_privkey

- name: "Create wireguard private key"
  shell: wg genkey > /etc/wireguard/privkey
  when: wireguard_privkey.stat.exists == false
  notify:
    - reload wireguard

- name: "Secure wireguard private key"
  file: path=/etc/wireguard/privkey mode=0600

- name: "Retrieve wireguard private key"
  shell: cat /etc/wireguard/privkey
  register: wireguard_privkey

- name: "Retrieve wireguard public key"
  shell: wg pubkey < /etc/wireguard/privkey
  register: wireguard_pubkey

- name: "Deploy wireguard configuration"
  template: src=wireguard.conf.j2 dest=/etc/wireguard/wgdeuxfleurs.conf mode=0600
  notify:
    - reload wireguard

- name: "Enable Wireguard systemd service at boot"
  service: name=wg-quick@wgdeuxfleurs state=started enabled=yes daemon_reload=yes

- name: "Create /tmp/wgdeuxfleurs.template.conf example configuration file for external nodes"
  local_action: template src=wireguard_external.conf.j2 dest=/tmp/wgdeuxfleurs.template.conf