Browse Source

DRY in openvpn role and allow other rc.local tasks

Yannik Sembritzki 8 years ago
parent
commit
9ffe86b36d

+ 13
- 0
roles/vpn/files/rc.local View File

1
+#!/bin/sh -e
2
+#
3
+# rc.local
4
+#
5
+# This script is executed at the end of each multiuser runlevel.
6
+# Make sure that the script will "exit 0" on success or any other
7
+# value on error.
8
+#
9
+# In order to enable or disable this script just change the execution
10
+# bits.
11
+#
12
+
13
+exit 0

+ 12
- 10
roles/vpn/tasks/openvpn.yml View File

119
   command: openssl dhparam -out {{ openvpn_dhparam }} {{ openvpn_key_size }}
119
   command: openssl dhparam -out {{ openvpn_dhparam }} {{ openvpn_key_size }}
120
            creates={{ openvpn_dhparam }}
120
            creates={{ openvpn_dhparam }}
121
 
121
 
122
-- name: Copy rc.local with firewall and dnsmasq rules into place
123
-  template: src=etc_rc.local dest=/etc/rc.local
122
+- name: Add empty rc.local if it doesn't exist
123
+  copy: src=rc.local dest=/etc/rc.local mode=700 owner=root group=root force=no
124
+
125
+- name: custom rc.local file with iptables rules
126
+  template: src=rc.local_ansible_openvpn dest=/etc/rc.local_ansible_openvpn mode=700 owner=root group=root
127
+
128
+- name: Ensure custom rc.local file is included in rc.local
129
+  lineinfile: dest=/etc/rc.local line='bash /etc/rc.local_ansible_openvpn' insertbefore='exit 0'
130
+
131
+- name: Run custom rc file
132
+  command: bash /etc/rc.local_ansible_openvpn
133
+  changed_when: False
124
 
134
 
125
 - name: Enable IPv4 traffic forwarding
135
 - name: Enable IPv4 traffic forwarding
126
   sysctl: name=net.ipv4.ip_forward value=1
136
   sysctl: name=net.ipv4.ip_forward value=1
127
 
137
 
128
-- name: Allow OpenVPN through the firewall
129
-  command: "{{ item }}"
130
-  with_items:
131
-    - iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
132
-    - iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
133
-    - iptables -A FORWARD -j REJECT
134
-    - iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o {{ ansible_default_ipv4.interface }} -j MASQUERADE
135
-
136
 - name: Allow OpenVPN through ufw
138
 - name: Allow OpenVPN through ufw
137
   ufw: rule=allow port={{ openvpn_port }} proto={{ openvpn_protocol }}
139
   ufw: rule=allow port={{ openvpn_port }} proto={{ openvpn_protocol }}
138
   tags: ufw
140
   tags: ufw

roles/vpn/templates/etc_rc.local → roles/vpn/templates/rc.local_ansible_openvpn View File

1
 #!/bin/sh -e
1
 #!/bin/sh -e
2
+# {{ ansible_managed }}
2
 #
3
 #
3
-# rc.local
4
-#
5
-# This script is executed at the end of each multiuser runlevel.
6
-# Make sure that the script will "exit 0" on success or any other
7
-# value on error.
8
-#
9
-# In order to enable or disable this script just change the execution
10
-# bits.
4
+# This script should be included in your rc.local
11
 #
5
 #
12
 
6
 
13
 iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
7
 iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Loading…
Cancel
Save