summaryrefslogtreecommitdiff
path: root/manifests/client.pp
diff options
context:
space:
mode:
authorJustin Lambert <jlambert@eml.cc>2013-01-10 20:34:48 -0700
committerJustin Lambert <jlambert@eml.cc>2013-01-10 20:34:48 -0700
commit5df60aad95fcff99ef5837577b0a70435e99d1aa (patch)
tree94f191531c4342052c43e96b59e299f63f069e5a /manifests/client.pp
parentc0b642e0e81b3c12c52a5f4b2d8f5ae4317e8c36 (diff)
documentation, refactoring to make the dependency chain easier to follow
Diffstat (limited to 'manifests/client.pp')
-rw-r--r--manifests/client.pp135
1 files changed, 107 insertions, 28 deletions
diff --git a/manifests/client.pp b/manifests/client.pp
index 6abef5e..581eece 100644
--- a/manifests/client.pp
+++ b/manifests/client.pp
@@ -1,5 +1,89 @@
-# client.pp
-
+# == Define: openvpn::client
+#
+# This define creates the client certs for a specified openvpn server as well
+# as creating a tarball that can be directly imported into openvpn clients
+#
+#
+# === Parameters
+#
+# [*server*]
+# String. Name of the corresponding openvpn endpoint
+# Required
+#
+# [*compression*]
+# String. Which compression algorithim to use
+# Default: comp-lzo
+# Options: comp-lzo or '' (disable compression)
+#
+# [*dev*]
+# String. Device method
+# Default: tun
+# Options: tun (routed connections), tap (bridged connections)
+#
+# [*mute*]
+# Integer. Set log mute level
+# Default: 20
+#
+# [*mute_replay_warnings*]
+# Boolean. Silence duplicate packet warnings (common on wireless networks)
+# Default: true
+#
+# [*nobind*]
+# Boolean. Whether or not to bind to a specific port number
+# Default: true
+#
+# [*persist_key*]
+# Boolean. Try to retain access to resources that may be unavailable
+# because of privilege downgrades
+# Default: true
+#
+# [*persist_tun*]
+# Boolean. Try to retain access to resources that may be unavailable
+# because of privilege downgrades
+# Default: true
+#
+# [*port*]
+# Integer. The port the openvpn server service is running on
+# Default: 1194
+#
+# [*proto*]
+# String. What IP protocol is being used.
+# Default: tcp
+# Options: tcp or udp
+#
+# [*remote_host*]
+# String. The IP or hostname of the openvpn server service
+# Default: FQDN
+#
+# [*resolv_retry*]
+# Integer/String. How many seconds should the openvpn client try to resolve
+# the server's hostname
+# Default: infinite
+# Options: Integer or infinite
+#
+# [*verb*]
+# Integer. Level of logging verbosity
+# Default: 3
+#
+#
+# === Examples
+#
+# openvpn::client {
+# 'my_user':
+# server => 'contractors',
+# remote_host => 'vpn.mycompany.com'
+# }
+#
+# * Removal:
+# Manual process right now, todo for the future
+#
+#
+# === Authors
+#
+# * Raffael Schmid <mailto:raffael@yux.ch>
+# * John Kinsella <mailto:jlkinsel@gmail.com>
+# * Justin Lambert <mailto:jlambert@letsevenup.com>
+#
define openvpn::client(
$server,
$compression = 'comp-lzo',
@@ -7,7 +91,6 @@ define openvpn::client(
$mute = '20',
$mute_replay_warnings = true,
$nobind = true,
- $ns_cert_type = 'server',
$persist_key = true,
$persist_tun = true,
$port = '1194',
@@ -16,41 +99,37 @@ define openvpn::client(
$resolv_retry = 'infinite',
$verb = '3',
) {
+
+ Openvpn::Server[$server] ->
+ Openvpn::Client[$name]
+
exec {
"generate certificate for ${name} in context of ${server}":
command => ". ./vars && ./pkitool ${name}",
cwd => "/etc/openvpn/${server}/easy-rsa",
creates => "/etc/openvpn/${server}/easy-rsa/keys/${name}.crt",
- provider => 'shell',
- require => Exec["generate server cert ${server}"];
+ provider => 'shell';
}
file {
- "/etc/openvpn/${server}/download-configs/${name}":
- ensure => directory,
- require => File["/etc/openvpn/${server}/download-configs"];
-
- "/etc/openvpn/${server}/download-configs/${name}/keys":
- ensure => directory,
- require => File["/etc/openvpn/${server}/download-configs/${name}"];
+ [ "/etc/openvpn/${server}/download-configs/${name}",
+ "/etc/openvpn/${server}/download-configs/${name}/keys"]:
+ ensure => directory;
"/etc/openvpn/${server}/download-configs/${name}/keys/${name}.crt":
ensure => link,
target => "/etc/openvpn/${server}/easy-rsa/keys/${name}.crt",
- require => [ Exec["generate certificate for ${name} in context of ${server}"],
- File["/etc/openvpn/${server}/download-configs/${name}/keys"] ];
+ require => Exec["generate certificate for ${name} in context of ${server}"];
"/etc/openvpn/${server}/download-configs/${name}/keys/${name}.key":
ensure => link,
target => "/etc/openvpn/${server}/easy-rsa/keys/${name}.key",
- require => [ Exec["generate certificate for ${name} in context of ${server}"],
- File["/etc/openvpn/${server}/download-configs/${name}/keys"] ];
+ require => Exec["generate certificate for ${name} in context of ${server}"];
"/etc/openvpn/${server}/download-configs/${name}/keys/ca.crt":
ensure => link,
target => "/etc/openvpn/${server}/easy-rsa/keys/ca.crt",
- require => [ Exec["generate certificate for ${name} in context of ${server}"],
- File["/etc/openvpn/${server}/download-configs/${name}/keys"] ];
+ require => Exec["generate certificate for ${name} in context of ${server}"];
"/etc/openvpn/${server}/download-configs/${name}/${name}.conf":
owner => root,
@@ -60,16 +139,16 @@ define openvpn::client(
notify => Exec["tar the thing ${server} with ${name}"];
}
- concat {
- "/etc/openvpn/${server}/client-configs/${name}":
- owner => root,
- group => root,
- mode => 644,
- warn => true,
- force => true,
- notify => Exec["tar the thing ${server} with ${name}"],
- require => [ File['/etc/openvpn'], File["/etc/openvpn/${server}/download-configs/${name}"] ];
- }
+# concat {
+# "/etc/openvpn/${server}/client-configs/${name}":
+# owner => root,
+# group => root,
+# mode => 644,
+# warn => true,
+# force => true,
+# notify => Exec["tar the thing ${server} with ${name}"],
+# require => [ File['/etc/openvpn'], File["/etc/openvpn/${server}/download-configs/${name}"] ];
+# }
exec {
"tar the thing ${server} with ${name}":