92 lines
2.9 KiB
YAML
92 lines
2.9 KiB
YAML
- name: Load private key into var
|
|
ansible.builtin.set_fact:
|
|
vpn_server_key: '{{ lookup("file", "files/wireguard/default/server.key") }}'
|
|
|
|
- name: Load public key into var
|
|
ansible.builtin.set_fact:
|
|
vpn_server_public_key: '{{ lookup("file", "files/wireguard/default/server.pub") }}'
|
|
|
|
# this should eventually be replaced with using the
|
|
# PrivateKeyFile/PresharedKeyFile options
|
|
- name: Load preshared keys into variables
|
|
ansible.builtin.set_fact:
|
|
vpn_peers: '{{ vpn_peers | combine({item.key: item.value | combine({"preshared_key": lookup("file", item.value.preshared_key_source_path)})}) }}'
|
|
with_dict: '{{ vpn_peers }}'
|
|
|
|
- name: Load mobile private_key
|
|
ansible.builtin.set_fact:
|
|
vpn_peers: '{{ vpn_peers | combine({item.key: item.value | combine({"private_key": lookup("file", item.value.private_key_source_path)})}) }}'
|
|
with_dict: '{{ vpn_peers }}'
|
|
when: item.key == "mobile"
|
|
|
|
- name: Copy wireguard configuration files
|
|
become: true
|
|
ansible.builtin.template:
|
|
src: '{{ item.src }}'
|
|
dest: '{{ item.dest }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
loop:
|
|
- src: 'templates/network/wireguard/default/wg0.netdev.j2'
|
|
dest: '/etc/systemd/network/wg0.netdev'
|
|
- src: 'templates/network/wireguard/default/wg0.network.j2'
|
|
dest: '/etc/systemd/network/wg0.network'
|
|
notify: restart systemd-networkd
|
|
|
|
- name: Copy mobile configuration
|
|
ansible.builtin.template:
|
|
src: 'templates/network/wireguard/default/mobile.wireguard.j2'
|
|
dest: '/tmp/mobile.conf'
|
|
mode: '0600'
|
|
when: copy_vpn_configurations
|
|
|
|
- name: Create wireguard directories
|
|
become: true
|
|
ansible.builtin.file:
|
|
path: '{{ item | dirname }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
state: directory
|
|
loop:
|
|
- '{{ vpn_server_key_path }}'
|
|
- '{{ vpn_server_public_key_path }}'
|
|
|
|
- name: Copy wireguard credentials
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: '{{ item.src }}'
|
|
dest: '{{ item.dest }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
loop:
|
|
- src: 'files/wireguard/default/server.pub'
|
|
dest: '{{ vpn_server_public_key_path }}'
|
|
- src: 'files/wireguard/default/server.key'
|
|
dest: '{{ vpn_server_key_path }}'
|
|
|
|
- name: Copy mobile wireguard credentials
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: '{{ item.src }}'
|
|
dest: '{{ item.dest }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
loop:
|
|
- src: 'files/wireguard/default/mobile.pub'
|
|
dest: '{{ vpn_server_public_key_path | dirname }}/mobile.pub'
|
|
- src: 'files/wireguard/default/mobile.key'
|
|
dest: '{{ vpn_server_key_path | dirname }}/mobile.key'
|
|
|
|
- name: Copy wireguard preshared keys
|
|
become: true
|
|
ansible.builtin.copy:
|
|
src: '{{ item.value.preshared_key_source_path }}'
|
|
dest: '{{ item.value.preshared_key_path }}'
|
|
owner: root
|
|
group: systemd-network
|
|
mode: '0640'
|
|
with_dict: '{{ vpn_peers }}'
|