diff options
author | Marc Fournier <marc.fournier@camptocamp.com> | 2011-11-15 13:17:30 +0100 |
---|---|---|
committer | Marc Fournier <marc.fournier@camptocamp.com> | 2011-11-15 13:17:30 +0100 |
commit | 5f4a22d6775fc091124c95bbb0b891bf95e6043c (patch) | |
tree | 8e72cf49cb70d9f88cd31dff946f5785f0fb8721 /manifests/subnet.pp | |
parent | 69f887dee39d13f52b7b228fa49e54bdd0454c3b (diff) | |
download | puppet-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.pp | 76 |
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", + } +} |