Puppet Class: psick::hosts::dynamic

Defined in:
manifests/hosts/dynamic.pp

Overview

::psick::hosts::dynamic Derived from github.com/example42/puppet-hosts Manage /etc/hosts dynamically. Requires puppetdb

Parameters:

  • dynamic_magicvar (String) (defaults to: '')
  • dynamic_exclude (Boolean) (defaults to: false)
  • dynamic_ip (String) (defaults to: $::ipaddress)
  • dynamic_alias (Array) (defaults to: [ $::hostname ])
  • extra_hosts (Hash) (defaults to: { })


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
# File 'manifests/hosts/dynamic.pp', line 5

class psick::hosts::dynamic (
  String $dynamic_magicvar = '',
  Boolean $dynamic_exclude = false,
  String  $dynamic_ip      = $::ipaddress,
  Array  $dynamic_alias    = [ $::hostname ],
  Hash  $extra_hosts       = { },
) {
  $magic_tag = get_magicvar($dynamic_magicvar)

  $real_tag = $dynamic_exclude ? {
    true    => 'Excluded',
    default => "env-${magic_tag}",
  }

  @@host { $::fqdn:
    ip           => $hosts::dynamic_ip,
    host_aliases => $hosts::dynamic_alias,
    tag          => $real_tag,
  }

  Host <<| tag == "env-${magic_tag}" |>> {
    ensure  => present,
  }

  if $extra_hosts != {} {
    $extra_hosts.each | $k,$v | {
      host { $k:
        * => $v,
      }
    }
  }

}