42 lines
1.4 KiB
YAML
42 lines
1.4 KiB
YAML
- name: Configure Wireguard Network Link
|
|
hosts:
|
|
- colors
|
|
- kubernetes
|
|
- managed
|
|
become: true
|
|
become_user: root
|
|
become_method: sudo
|
|
vars_files:
|
|
- vars.yaml
|
|
tasks:
|
|
- name: Check if {{ wireguard.interface }} exists
|
|
shell: ip link show {{ wireguard.interface }}
|
|
register: link_check
|
|
ignore_errors: yes
|
|
- name: Add {{ wireguard.interface }} link
|
|
shell: ip link add dev {{ wireguard.interface }} type wireguard
|
|
when: link_check.rc != 0
|
|
- name: Add {{ wireguard.interface }} ipv6 addresses
|
|
shell: "ip address add dev {{ wireguard.interface }} {{ ip[inventory_hostname].address_ipv6 }}/64"
|
|
ignore_errors: yes
|
|
- name: Add {{ wireguard.interface }} ipv4 addresses
|
|
shell: "ip address add dev {{ wireguard.interface }} {{ ip[inventory_hostname].address_ipv4 }}/24"
|
|
ignore_errors: yes
|
|
- name: wg set port/key
|
|
shell: >
|
|
wg set {{ wireguard.interface }}
|
|
listen-port {{ wireguard.listen_port }}
|
|
private-key /etc/wireguard/privatekey
|
|
- name: Set link up
|
|
shell: ip link set up dev {{ wireguard.interface }}
|
|
- name: Touch {{ wireguard.interface }}.conf
|
|
ansible.builtin.file:
|
|
path: /etc/wireguard/{{ wireguard.interface }}.conf
|
|
state: touch
|
|
- name: save wg config
|
|
shell: wg-quick save {{ wireguard.interface }}
|
|
- name: Enable wg-quick@{{ wireguard.interface }}
|
|
ansible.builtin.systemd_service:
|
|
name: wg-quick@{{ wireguard.interface }}
|
|
enabled: true
|