75 lines
1.5 KiB
Plaintext
75 lines
1.5 KiB
Plaintext
openvpn:
|
|
pkg.installed: []
|
|
|
|
/dev/net:
|
|
file.directory:
|
|
- mode: 0755
|
|
|
|
/dev/net/tun:
|
|
file.mknod:
|
|
- ntype: 'c'
|
|
- major: 10
|
|
- minor: 200
|
|
- mode: 0666
|
|
- require:
|
|
- file: /dev/net
|
|
|
|
{%- for name, conf in pillar['openvpn'].items() %}
|
|
|
|
hostroutes-{{ name }}:
|
|
network.routes:
|
|
- name: core
|
|
- routes:
|
|
{%- for a in salt.dnsutil.A(conf['server']) %}
|
|
- ipaddr: {{ a }}
|
|
netmask: 255.255.255.255
|
|
gateway: {{ pillar['hosts-inet']['core']['upstream1'] }}
|
|
{%- endfor %}
|
|
|
|
/etc/openvpn/{{ name }}.conf:
|
|
file.managed:
|
|
- source: salt://vpn/openvpn.conf
|
|
- template: 'jinja'
|
|
- context:
|
|
name: {{ name }}
|
|
|
|
/etc/openvpn/{{ name }}.auth:
|
|
file.managed:
|
|
- source: salt://vpn/auth
|
|
- template: 'jinja'
|
|
- context:
|
|
name: {{ name }}
|
|
- mode: 600
|
|
|
|
/etc/openvpn/{{ name }}.up:
|
|
file.managed:
|
|
- source: salt://vpn/up
|
|
- template: 'jinja'
|
|
- context:
|
|
name: {{ name }}
|
|
- mode: 755
|
|
|
|
|
|
autostart-{{ name }}:
|
|
service.enabled:
|
|
- name: openvpn@{{ name }}
|
|
require_in:
|
|
- file: /etc/openvpn/{{ name }}.conf
|
|
- file: /etc/openvpn/{{ name }}.auth
|
|
require:
|
|
- file: /dev/net/tun
|
|
|
|
start-{{ name }}:
|
|
service.running:
|
|
- name: openvpn@{{ name }}
|
|
require_in:
|
|
- file: /etc/openvpn/{{ name }}.conf
|
|
- file: /etc/openvpn/{{ name }}.auth
|
|
watch:
|
|
- file: /etc/openvpn/{{ name }}.conf
|
|
- file: /etc/openvpn/{{ name }}.auth
|
|
require:
|
|
- file: /dev/net/tun
|
|
|
|
{%- endfor %}
|