Skip to content

Commit 18c4c4a

Browse files
committed
fix(config): configurable distinction between server and client services
1 parent b59ada1 commit 18c4c4a

File tree

5 files changed

+25
-12
lines changed

5 files changed

+25
-12
lines changed

openvpn/config.sls

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ include:
1919
2020
{% set service_id = "openvpn_{0}_service".format(name) if map.multi_services else "openvpn_service" %}
2121
22-
{%- set config_dir = config.conf_dir if config.conf_dir is defined else map.conf_dir %}
23-
{%- if grains.os == "Fedora" %}
24-
{#- Fedora uses /etc/openvpn/{client,server} as their working directory #}
25-
{%- set config_dir = config_dir ~ '/' ~ type %}
22+
{%- if config.conf_dir is defined %}
23+
{#- Use the explicit config from Pillar, if it is present. #}
24+
{%- set config_dir = config.conf_dir %}
25+
{%- else %}
26+
{#- Some distributions use /etc/openvpn/{client,server} as their working directory #}
27+
{%- set config_dir = map.get(type ~ "_conf_dir", map.conf_dir) %}
2628
{%- endif %}
2729
2830
{% set config_file = "{0}/openvpn_{1}.conf".format(config_dir, name) if map.multi_services and grains['os_family'] == 'FreeBSD' else "{0}/{1}.{2}".format(config_dir, name, map.conf_ext) %}

openvpn/dhparams.sls

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
33
# Generate diffie hellman files
44
{% if salt['pillar.get']('openvpn:server', False) %}
5+
{#- Some distributions use /etc/openvpn/{client,server} as their working directory #}
6+
{%- set config_dir = map.get("server_conf_dir", map.conf_dir) %}
57
{%- for dh in map.dh_files %}
8+
{%- set dh_file = config_dir ~ "/dh" ~ dh ~ ".pem" %}
69
openvpn_create_dh_{{ dh }}:
710
cmd.run:
8-
- name: openssl dhparam {% if map.dsaparam %}-dsaparam {% endif %}-out {{ map.conf_dir }}/dh{{ dh }}.pem {{ dh }}
9-
- creates: {{ map.conf_dir }}/dh{{ dh }}.pem
11+
- name: openssl dhparam {% if map.dsaparam %}-dsaparam {% endif %}-out {{ dh_file }} {{ dh }}
12+
- creates: {{ dh_file }}
1013
- require:
1114
- pkg: openvpn_pkgs
1215
{%- endfor %}

openvpn/osfamilymap.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ Arch:
88
Debian:
99
group: nogroup
1010
log_user: root
11+
client_conf_dir: /etc/openvpn/client
12+
client_service: openvpn-client
13+
server_conf_dir: /etc/openvpn/server
14+
server_service: openvpn-server
1115
RedHat:
1216
pkgs:
1317
- openvpn

openvpn/osmap.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ Debian:
66
- wheezy
77
- jessie
88
- stretch
9+
Fedora:
10+
client_conf_dir: /etc/openvpn/client
11+
client_service: openvpn-client
12+
server_conf_dir: /etc/openvpn/server
13+
server_service: openvpn-server
914
Ubuntu:
1015
external_repo_supported:
1116
- precise

openvpn/service.sls

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@
1212
1313
# How to name the service (instance)?
1414
{% if salt['grains.has_value']('systemd') %}
15-
{%- if grains.os == "Fedora" %}
16-
{#- Fedora uses /etc/openvpn/{client,server} as their working directory #}
17-
{% set service_name = map.service ~ '-' ~ type ~ '@' ~ name %}
18-
{%- else %}
19-
{% set service_name = map.service ~ '@' ~ name %}
20-
{%- endif %}
15+
{#-
16+
Some distributions use /etc/openvpn/{client,server} as their working directory
17+
and openvpn-{client,server} as their service.
18+
#}
19+
{% set service_name = map.get(type ~ "_service", map.service) ~ '@' ~ name %}
2120
{% else %}
2221
{% set service_name = map.service ~ '_' ~ name %}
2322
{% endif %}

0 commit comments

Comments
 (0)