aboutsummaryrefslogtreecommitdiff
path: root/manifests/subnet.pp
diff options
context:
space:
mode:
authorMarc Fournier <marc.fournier@camptocamp.com>2011-11-15 13:17:30 +0100
committerMarc Fournier <marc.fournier@camptocamp.com>2011-11-15 13:17:30 +0100
commit5f4a22d6775fc091124c95bbb0b891bf95e6043c (patch)
tree8e72cf49cb70d9f88cd31dff946f5785f0fb8721 /manifests/subnet.pp
parent69f887dee39d13f52b7b228fa49e54bdd0454c3b (diff)
downloadpuppet-dhcp-5f4a22d6775fc091124c95bbb0b891bf95e6043c.tar.gz
puppet-dhcp-5f4a22d6775fc091124c95bbb0b891bf95e6043c.tar.bz2
file renaming to be compliant with recommended module structure.
Diffstat (limited to 'manifests/subnet.pp')
-rw-r--r--manifests/subnet.pp76
1 files changed, 76 insertions, 0 deletions
diff --git a/manifests/subnet.pp b/manifests/subnet.pp
new file mode 100644
index 0000000..c0f865b
--- /dev/null
+++ b/manifests/subnet.pp
@@ -0,0 +1,76 @@
+/*
+
+= Definition: dhcp::subnet
+Creates a subnet
+
+Arguments:
+ *$broadcast* : subnet broadcast (mandatory)
+ *$netmask* : subnet netmask (if not set, takes eth0 netmask)
+ *$routers* : subnet routers (array) (if not set, takes eth0 IP)
+ *$subnet_mask* : netmask sent to dhcp guests (if not set, takes $netmask, or netmask_eth0)
+ *$domain_name* : subnet domain name (if not set, takes server domain)
+ *$other_opts* : any other DHCPD option, as an array
+ *$is_shared* : whether it's part of a shared network or not. Default: false
+
+Example:
+
+node "dhcp.domain.ltd" {
+ $dhcpd_domain_name = 'domain.ltd'
+ $dhcpd_dns_servers = '10.27.21.1, 10.26.21.1'
+ include dhcp
+
+ dhcp::subnet {"10.27.20.0":
+ ensure => present,
+ broadcast => "10.27.20.255",
+ other_opts => ['filename "pxelinux.0";', 'next-server 10.27.10.1;'],
+ }
+}
+*/
+define dhcp::subnet(
+ $ensure=present,
+ $broadcast,
+ $netmask=false,
+ $routers=false,
+ $subnet_mask=false,
+ $domain_name=false,
+ $other_opts=false,
+ $is_shared=false) {
+ include dhcp::params
+
+ $to_include = "${dhcp::params::config_dir}/hosts.d/${name}.conf"
+
+ file {"${dhcp::params::config_dir}/subnets/${name}.conf":
+ ensure => $ensure,
+ owner => root,
+ group => root,
+ content => template("dhcp/subnet.conf.erb"),
+ notify => Service["dhcpd"],
+ }
+
+ if ! $is_shared {
+ common::concatfilepart {"dhcp.${name}":
+ file => "${dhcp::params::config_dir}/dhcpd.conf",
+ ensure => $ensure,
+ content => "include \"${dhcp::params::config_dir}/subnets/${name}.conf\";\n",
+ }
+ } else {
+ common::concatfilepart {"dhcp.${name}":
+ file => "${dhcp::params::config_dir}/dhcpd.conf",
+ ensure => absent,
+ content => "include \"${dhcp::params::config_dir}/subnets/${name}.conf\";\n",
+ }
+
+ }
+
+ common::concatfilepart {"subnet.${name}.hosts":
+ file => "${dhcp::params::config_dir}/dhcpd.conf",
+ ensure => $ensure,
+ content => "include \"${dhcp::params::config_dir}/hosts.d/${name}.conf\";\n",
+ }
+
+ common::concatfilepart {"00.dhcp.${name}.base":
+ file => $to_include,
+ ensure => $ensure,
+ content => "# File managed by puppet\n",
+ }
+}