summaryrefslogtreecommitdiff
path: root/manifests/a.pp
blob: 903315b6fb233ceb07d772472669927f21ca1b03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*

= Definition: bind::a
Creates an IPv4 record.

Arguments:
 *$zone*:  Bind::Zone name
 *$owner*: owner of the Resource Record
 *$host*:  target of the Resource Record
 *$ttl*:   Time to Live for the Resource Record. Optional.
 *$ptr*:   create the corresponding ptr record (default=true)

*/
define bind::a($ensure=present,
    $zone,
    $owner=false,
    $host,
    $ttl=false,
    $ptr=true) {

  bind::record {$name:
    ensure => $ensure,
    zone   => $zone,
    owner  => $owner,
    host   => $host,
    ttl    => $ttl,
    record_type => 'A',
  }

  if $ptr {
    $subnet = inline_template("<%= host.split('.')[0,3].join('.') %>") 
    $number = inline_template("<%= host.split('.')[3] %>")

    bind::ptr {$host:
      ensure => $ensure,
      zone   => $subnet,
      owner  => $number,
      host   => $owner,
      ttl    => $ttl,
    }
  }
}