112 lines
3.4 KiB
YAML
112 lines
3.4 KiB
YAML
# Note: Only compatible with personal group
|
|
|
|
- name: Create Wireguard directories
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: '{{ item }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0750'
|
|
state: directory
|
|
recurse: true
|
|
loop:
|
|
- '{{ vpn_config_dir }}'
|
|
- '{{ vpn_default.private_key_path | dirname }}'
|
|
- '{{ vpn_default.public_key_path | dirname }}'
|
|
- '{{ vpn_media.private_key_path | dirname }}'
|
|
- '{{ vpn_media.public_key_path | dirname }}'
|
|
notify:
|
|
- restart systemd-networkd
|
|
- restart systemd-resolved
|
|
|
|
- name: Copy Wireguard credentials
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: '{{ item.src }}'
|
|
dest: '{{ item.dest }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
loop:
|
|
- dest: '{{ vpn_default.public_key_path }}'
|
|
src: 'files/personal/{{ ansible_hostname }}/wireguard/default/{{ ansible_hostname }}.pub'
|
|
|
|
- dest: '{{ vpn_default.private_key_path }}'
|
|
src: 'files/personal/{{ ansible_hostname }}/wireguard/default/{{ ansible_hostname }}.key'
|
|
|
|
- dest: '{{ vpn_media.public_key_path }}'
|
|
src: 'files/personal/{{ ansible_hostname }}/wireguard/media/{{ ansible_hostname }}.pub'
|
|
|
|
- dest: '{{ vpn_media.private_key_path }}'
|
|
src: 'files/personal/{{ ansible_hostname }}/wireguard/media/{{ ansible_hostname }}.key'
|
|
notify:
|
|
- restart systemd-networkd
|
|
- restart systemd-resolved
|
|
|
|
- name: Copy Wireguard preshared keys
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: '{{ item.preshared_key_source_path }}'
|
|
dest: '{{ item.preshared_key_path }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
loop: '{{ vpn_default.peers + vpn_media.peers }}'
|
|
notify:
|
|
- restart systemd-networkd
|
|
- restart systemd-resolved
|
|
|
|
- name: Desktop configuration
|
|
notify:
|
|
- restart systemd-networkd
|
|
- restart systemd-resolved
|
|
when: ansible_hostname == 'desktop'
|
|
block:
|
|
- name: Setup network configuration
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: '{{ item.src }}'
|
|
dest: '{{ item.dest }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
loop:
|
|
- src: 'templates/personal/desktop/network/wg0.network.j2'
|
|
dest: '/etc/systemd/network/40-wg0.network'
|
|
|
|
- src: 'templates/personal/desktop/network/wg0.netdev.j2'
|
|
dest: '/etc/systemd/network/40-wg0.netdev'
|
|
|
|
- src: 'templates/personal/desktop/network/wg1.network.j2'
|
|
dest: '/etc/systemd/network/40-wg1.network'
|
|
|
|
- src: 'templates/personal/desktop/network/wg1.netdev.j2'
|
|
dest: '/etc/systemd/network/40-wg1.netdev'
|
|
|
|
- name: XPS configuration
|
|
notify:
|
|
- restart systemd-networkd
|
|
- restart systemd-resolved
|
|
- restart iwd
|
|
when: ansible_hostname == 'xps'
|
|
block:
|
|
- name: Setup network configuration
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: '{{ item.src }}'
|
|
dest: '{{ item.dest }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
loop:
|
|
- src: 'templates/personal/xps/network/wg0.network.j2'
|
|
dest: '/etc/systemd/network/40-wg0.network'
|
|
|
|
- src: 'templates/personal/xps/network/wg0.netdev.j2'
|
|
dest: '/etc/systemd/network/40-wg0.netdev'
|
|
|
|
- src: 'templates/personal/xps/network/wg1.network.j2'
|
|
dest: '/etc/systemd/network/40-wg1.network'
|
|
|
|
- src: 'templates/personal/xps/network/wg1.netdev.j2'
|
|
dest: '/etc/systemd/network/40-wg1.netdev'
|