summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authorRaffael Schmid <raffael@yux.ch>2013-01-19 13:21:26 +0100
committerRaffael Schmid <raffael@yux.ch>2013-01-19 13:21:26 +0100
commitf40e5ff5c9029229ad8a42c9458b2aa01bea46de (patch)
tree51025c4e746c8a2d8d593fbfc8a2ac0a58fa46e8 /manifests
parent619354dca18234b2f67aaaeeb62ab618469c9cb9 (diff)
add tests and code for openvpn::client_specific_config
Diffstat (limited to 'manifests')
-rw-r--r--manifests/client_specific_config.pp60
1 files changed, 60 insertions, 0 deletions
diff --git a/manifests/client_specific_config.pp b/manifests/client_specific_config.pp
new file mode 100644
index 0000000..231d55d
--- /dev/null
+++ b/manifests/client_specific_config.pp
@@ -0,0 +1,60 @@
+# == Define: openvpn::client_specific_config
+#
+# This define configures options which will be pushed by the server to a
+# specific client only.
+# http://openvpn.net/index.php/open-source/documentation/howto.html#policy
+#
+# === Parameters
+#
+# [*server*]
+# String. Name of the corresponding openvpn endpoint
+# Required
+#
+# [*iroute*]
+# Array. Array of iroute combinations.
+# Default: []
+#
+# [*ifconfig*]
+# String. IP configuration to push to the client.
+# Default: false
+#
+# [*dhcp_options]
+# Array. DHCP options to push to the client.
+# Default: []
+#
+#
+# === Examples
+#
+# openvpn::client_specific_config {
+# 'vpn_client':
+# server => 'contractors',
+# iroute => ['10.0.1.0 255.255.255.0'],
+# ifconfig => '10.10.10.2 255.255.255.0',
+# dhcp_options => ['DNS 8.8.8.8']
+# }
+#
+# * Removal:
+# Manual process right now, todo for the future
+#
+#
+# === Authors
+#
+# * Raffael Schmid <mailto:raffael@yux.ch>
+#
+define openvpn::client_specific_config(
+ $server,
+ $iroute = [],
+ $ifconfig = false,
+ $dhcp_options = []
+) {
+
+ Openvpn::Server[$server] ->
+ Openvpn::Client[$name] ->
+ Openvpn::Client_specific_config[$name]
+
+ file { "/etc/openvpn/${server}/client-configs/${name}":
+ ensure => present,
+ content => template('openvpn/client_specific_config.erb')
+ }
+
+}