summaryrefslogtreecommitdiff
path: root/manifests/option.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/option.pp')
-rw-r--r--manifests/option.pp31
1 files changed, 31 insertions, 0 deletions
diff --git a/manifests/option.pp b/manifests/option.pp
new file mode 100644
index 0000000..8c2a7a2
--- /dev/null
+++ b/manifests/option.pp
@@ -0,0 +1,31 @@
+# option.pp
+
+define openvpn::option($ensure = present, $key, $value = "", $server, $client = "", $csc = false) {
+ $content = $value ? {
+ "" => "${key}",
+ default => "${key} ${value}"
+ }
+
+ if $client == "" {
+ $path = "/etc/openvpn/${server}.conf"
+ $req = File["/etc/openvpn"]
+ $notify = Service["openvpn"]
+ } else {
+ if $csc {
+ $path = "/etc/openvpn/${server}/client-configs/${client}"
+ } else {
+ $path = "/etc/openvpn/${server}/download-configs/${client}/${client}.conf"
+ }
+ $req = [ File["/etc/openvpn"], File["/etc/openvpn/${server}/download-configs/${client}"] ]
+ $notify = undef
+ }
+
+ common::concatfilepart {
+ "${name}":
+ ensure => $ensure,
+ file => $path,
+ content => "${content}\n",
+ notify => $notify,
+ require => $req;
+ }
+}