aboutsummaryrefslogtreecommitdiff
path: root/manifests/shared_network.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/shared_network.pp')
-rw-r--r--manifests/shared_network.pp40
1 files changed, 40 insertions, 0 deletions
diff --git a/manifests/shared_network.pp b/manifests/shared_network.pp
new file mode 100644
index 0000000..766f432
--- /dev/null
+++ b/manifests/shared_network.pp
@@ -0,0 +1,40 @@
+# Definition: dhcp::shared-network
+#
+# Creates a shared-network
+#
+# Parameters:
+# ['subnets'] - An array of subnets to be included in the shared-network.
+#
+# Sample usage:
+# ::dhcp::shared_network { 'office':
+# subnets => ['192.168.1.0', '192.168.2.0'],
+# }
+#
+# Requires:
+# - puppetlabs/stdlib
+# - ripienaar/concat
+#
+# Warnings:
+# - subnets must exists
+# - subnets must have $is_shared set to true (default is false)
+#
+define dhcp::shared_network(
+ $ensure = present,
+ $subnets = [],
+) {
+
+ include ::dhcp::params
+
+ validate_string($ensure)
+ validate_re($ensure, ['present', 'absent'],
+ "\$ensure must be either 'present' or 'absent', got '${ensure}'")
+ validate_array($subnets)
+
+ concat::fragment {"dhcp-shared-${name}":
+ ensure => $ensure,
+ target => "${dhcp::params::config_dir}/dhcpd.conf",
+ content => template("${module_name}/shared-network.erb"),
+ require => Dhcp::Subnet[$subnets],
+ }
+
+}