57 lines
1.5 KiB
YAML
Executable File
57 lines
1.5 KiB
YAML
Executable File
---
|
|
- name: install client ovpn configs
|
|
template:
|
|
src: etc/openvpn/client/client.ovpn.j2
|
|
dest: "{{ vpn_home }}/client/{{ client }}.ovpn"
|
|
mode: 0600
|
|
owner: root
|
|
group: vpn
|
|
loop: "{{ vpn_clients_active }}"
|
|
loop_control:
|
|
loop_var: client
|
|
label: "{{ client }}"
|
|
|
|
- name: find abstent clients ovpn config
|
|
find:
|
|
paths: "{{ vpn_home }}/client/"
|
|
pattern: "{{ client }}.*"
|
|
loop: "{{ vpn_clients_passive }}"
|
|
loop_control:
|
|
loop_var: client
|
|
label: "{{ client }}"
|
|
register: absent_clients
|
|
|
|
- name: remove absent clients ovpn config
|
|
file:
|
|
state: absent
|
|
path: "{{ client }}"
|
|
loop: "{{ absent_clients.results | json_query('[*].files[*].path') | flatten }}"
|
|
loop_control:
|
|
loop_var: client
|
|
label: "{{ client | basename }}"
|
|
when: absent_clients.results | length > 0
|
|
|
|
- name: setup OpenVPN config folder for each vpn client
|
|
file:
|
|
state: directory
|
|
path: "/home/{{ user }}/.openvpn"
|
|
mode: 0700
|
|
owner: "{{ user }}"
|
|
group: "{{ user }}"
|
|
loop: "{{ vpn_clients_active | map('regex_replace','\\.[^\\.]+$','') | list | unique }}"
|
|
loop_control:
|
|
loop_var: user
|
|
label: "{{ user }}"
|
|
|
|
- name: rollout .ovpn single-file config for active clients
|
|
copy:
|
|
src: "{{ vpn_home }}/client/{{ client }}.ovpn"
|
|
dest: "/home/{{ client.split('.')[0] }}/.openvpn/"
|
|
mode: 0400
|
|
owner: "{{ client.split('.')[0] }}"
|
|
group: "{{ client.split('.')[0] }}"
|
|
loop: "{{ vpn_clients_active }}"
|
|
loop_control:
|
|
loop_var: client
|
|
label: "{{ client }}"
|
|
|