aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/definitions/dhcp-shared-network.pp22
-rw-r--r--templates/shared-network.erb7
2 files changed, 29 insertions, 0 deletions
diff --git a/manifests/definitions/dhcp-shared-network.pp b/manifests/definitions/dhcp-shared-network.pp
new file mode 100644
index 0000000..9e1e779
--- /dev/null
+++ b/manifests/definitions/dhcp-shared-network.pp
@@ -0,0 +1,22 @@
+/*
+
+== Definition: dhcp::shared-network
+Creates a shared-network
+
+Arguments:
+ *$subnets* : subnet list to be included in the shared-network
+
+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
+ common::concatfilepart {"shared-${name}":
+ ensure => $ensure,
+ file => "${dhcp::params::config_dir}/dhcpd.conf",
+ content => template("dhcp/shared-network.erb"),
+ require => Dhcp::Subnet[$subnets],
+ }
+}
diff --git a/templates/shared-network.erb b/templates/shared-network.erb
new file mode 100644
index 0000000..99a7aca
--- /dev/null
+++ b/templates/shared-network.erb
@@ -0,0 +1,7 @@
+#### dhcp::shared-network <%= name %>
+shared-network <%= name %> {
+<% subnets.each do |subnet| -%>
+ include "<%= scope.lookupvar("dhcp::params::config_dir") %>/subnets/<%= subnet %>.conf";
+<% end -%>
+}
+#### END <%= name %>