add openvpn role
This commit is contained in:
0
roles/openvpn/tasks/default.yaml
Normal file
0
roles/openvpn/tasks/default.yaml
Normal file
76
roles/openvpn/tasks/instances.yaml
Normal file
76
roles/openvpn/tasks/instances.yaml
Normal file
@ -0,0 +1,76 @@
|
||||
---
|
||||
- set_fact:
|
||||
instance_path: "{{ openvpn_etc_path }}/{{ instance }}"
|
||||
openvpn_instance: "{{ instance }}"
|
||||
|
||||
- name: openvpn static keys
|
||||
copy:
|
||||
dest: "{{ instance_path }}/{{ item.key }}"
|
||||
content: "{{ item.value }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
loop: "{{ openvpn_static_keys[instance] | dict2items }}"
|
||||
no_log: true
|
||||
notify: restart openvpn instance
|
||||
|
||||
- name: openvpn dh params
|
||||
copy:
|
||||
dest: "{{ instance_path }}/{{ item.key }}"
|
||||
content: "{{ item.value }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
loop: "{{ openvpn_dh_params[instance] | default({}) | dict2items }}"
|
||||
notify: restart openvpn instance
|
||||
|
||||
- name: openvpn private_keys
|
||||
copy:
|
||||
dest: "{{ instance_path }}/{{ item.key }}"
|
||||
content: "{{ item.value }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0600"
|
||||
loop: "{{ openvpn_private_keys[instance] | dict2items }}"
|
||||
no_log: true
|
||||
notify: restart openvpn instance
|
||||
|
||||
- name: openvpn certificates
|
||||
copy:
|
||||
dest: "{{ instance_path }}/{{ item.key }}"
|
||||
content: "{{ item.value }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
loop: "{{ openvpn_certificates[instance] | dict2items }}"
|
||||
notify: restart openvpn instance
|
||||
|
||||
- name: configure openvpn
|
||||
template:
|
||||
src: openvpn.conf.j2
|
||||
dest: "{{ instance_path }}.conf"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
notify: restart openvpn instance
|
||||
|
||||
- name: mkdir ccd
|
||||
file:
|
||||
path: "{{ instance_path }}/ccd"
|
||||
state: directory
|
||||
|
||||
- name: configure ccd
|
||||
template:
|
||||
src: ccd.j2
|
||||
dest: "{{ instance_path }}/ccd/{{ item.key }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
loop: "{{ openvpn_ccd[instance] | default({}) | dict2items }}"
|
||||
notify: restart openvpn instance
|
||||
|
||||
- name: "manage openvpn@{{ instance }} service"
|
||||
service:
|
||||
name: "{{ openvpn_service_name }}@{{ instance }}"
|
||||
state: "{{ openvpn_service_state }}"
|
||||
enabled: "{{ openvpn_service_enabled }}"
|
52
roles/openvpn/tasks/main.yaml
Normal file
52
roles/openvpn/tasks/main.yaml
Normal file
@ -0,0 +1,52 @@
|
||||
---
|
||||
- name: gather os specific variables
|
||||
include_vars: "{{ lookup('first_found', possible_files) }}"
|
||||
vars:
|
||||
possible_files:
|
||||
files:
|
||||
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
|
||||
- "{{ ansible_distribution }}.yaml"
|
||||
- "{{ ansible_os_family }}.yaml"
|
||||
- "default.yaml"
|
||||
paths:
|
||||
- vars
|
||||
|
||||
- name: include os specific tasks
|
||||
include_tasks: "{{ lookup('first_found', possible_files) }}"
|
||||
vars:
|
||||
possible_files:
|
||||
files:
|
||||
- "{{ ansible_distribution }}-{{ ansible_distribution_version }}.yaml"
|
||||
- "{{ ansible_distribution }}.yaml"
|
||||
- "{{ ansible_os_family }}.yaml"
|
||||
- "default.yaml"
|
||||
paths:
|
||||
- tasks
|
||||
|
||||
- name: "install {{ openvpn_package_name }}"
|
||||
package:
|
||||
name: "{{ openvpn_package_name }}"
|
||||
state: "{{ openvpn_package_state }}"
|
||||
|
||||
|
||||
- name: "manage instances {{ item }}"
|
||||
include: instances.yaml
|
||||
loop: "{{ openvpn_config.keys() | list }}"
|
||||
loop_control:
|
||||
loop_var: instance
|
||||
|
||||
- name: configure IPv4 forwarding
|
||||
sysctl:
|
||||
name: net.ipv4.ip_forward
|
||||
value: "{{ openvpn_ip_forward | default(0) }}"
|
||||
sysctl_set: yes
|
||||
state: present
|
||||
reload: yes
|
||||
|
||||
- name: configure IPv6 forwarding
|
||||
sysctl:
|
||||
name: net.ipv6.conf.all.forwarding
|
||||
value: "{{ openvpn_ip_forward | default(0) }}"
|
||||
sysctl_set: yes
|
||||
state: present
|
||||
reload: yes
|
Reference in New Issue
Block a user