| OLD | NEW |
| 1 # == Type: adblockplus::host | 1 # == Type: adblockplus::host |
| 2 # | 2 # |
| 3 # Manage host information for any node within the Adblock Plus infrastructure. | 3 # Manage host information for any node within the Adblock Plus infrastructure. |
| 4 # | 4 # |
| 5 # === Parameters: | 5 # === Parameters: |
| 6 # | 6 # |
| 7 # [*ensure*] | 7 # [*ensure*] |
| 8 # Whether to ensure any host-related resources being 'present' or 'absent'. | 8 # Whether to ensure any host-related resources being 'present' or 'absent'. |
| 9 # Note that implicit realization of embedded resources only takes place if | 9 # Note that implicit realization of embedded resources only takes place if |
| 10 # $ensure is 'absent'. | 10 # $ensure is 'absent'. |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 # | 47 # |
| 48 # # Global realization, i.e. when creating a node all others can access | 48 # # Global realization, i.e. when creating a node all others can access |
| 49 # realize(Host<|tag == 'adblockplus::host'|>) | 49 # realize(Host<|tag == 'adblockplus::host'|>) |
| 50 # realize(Sshkey<|tag == 'adblockplus::host'|>) | 50 # realize(Sshkey<|tag == 'adblockplus::host'|>) |
| 51 # | 51 # |
| 52 # # Addressing (meta-) parameters for re-using their values | 52 # # Addressing (meta-) parameters for re-using their values |
| 53 # $fqdn = getparam(Adblockplus::Host['node1'], 'fqdn') | 53 # $fqdn = getparam(Adblockplus::Host['node1'], 'fqdn') |
| 54 # $primary_ip = getparam(Host['node1'], 'ip') | 54 # $primary_ip = getparam(Host['node1'], 'ip') |
| 55 # $key_type = getparam(Sshkey['node1'], 'type') | 55 # $key_type = getparam(Sshkey['node1'], 'type') |
| 56 # | 56 # |
| 57 # # Resources associated with 'absent' hosts are always realized |
| 58 # adblockplus::host {'node0': |
| 59 # ensure => 'absent', |
| 60 # } |
| 61 # |
| 57 define adblockplus::host ( | 62 define adblockplus::host ( |
| 58 $ensure = 'present', | 63 $ensure = 'present', |
| 59 $fqdn = "$name.$adblockplus::authority", | 64 $fqdn = "$name.$adblockplus::authority", |
| 60 $groups = [], | 65 $groups = [], |
| 61 $ips, | 66 $ips = [], |
| 62 $public_key = undef, | 67 $public_key = undef, |
| 63 $role = undef, | 68 $role = undef, |
| 64 ) { | 69 ) { |
| 65 | 70 |
| 66 include adblockplus | 71 include adblockplus |
| 67 include stdlib | 72 include stdlib |
| 68 | 73 |
| 69 case $public_key { | 74 case $public_key { |
| 70 | 75 |
| 71 undef: { | 76 undef: { |
| 72 $sshkey_ensure = 'absent' | 77 $sshkey_ensure = 'absent' |
| 73 $sshkey_key = undef | 78 $sshkey_key = undef |
| 74 $sshkey_type = undef | 79 $sshkey_type = undef |
| 75 } | 80 } |
| 76 | 81 |
| 77 default: { | 82 default: { |
| 78 $sshkey_ensure = $ensure | 83 $sshkey_ensure = $ensure |
| 79 $sshkey = split($public_key, '\s+') | 84 $sshkey = split($public_key, '\s+') |
| 80 $sshkey_type = $sshkey[0] | 85 $sshkey_type = $sshkey[0] |
| 81 $sshkey_key = $sshkey[1] | 86 $sshkey_key = $sshkey[1] |
| 82 } | 87 } |
| 83 } | 88 } |
| 84 | 89 |
| 85 @host {$title: | 90 @host {$title: |
| 86 ensure => $ensure, | 91 ensure => $ensure, |
| 87 ip => pick($ips), | 92 ip => pick($ips[0], '0.0.0.0'), |
| 88 name => $fqdn, | 93 name => $fqdn, |
| 89 tag => ['adblockplus::host'], | 94 tag => ['adblockplus::host'], |
| 90 } | 95 } |
| 91 | 96 |
| 92 @sshkey {$title: | 97 @sshkey {$title: |
| 93 ensure => $sshkey_ensure, | 98 ensure => $sshkey_ensure, |
| 94 host_aliases => $ips, | 99 host_aliases => $ips, |
| 95 key => $sshkey_key, | 100 key => $sshkey_key, |
| 96 name => $fqdn, | 101 name => $fqdn, |
| 97 require => File['/etc/ssh/ssh_known_hosts'], | 102 require => File['/etc/ssh/ssh_known_hosts'], |
| 98 tag => ['adblockplus::host'], | 103 tag => ['adblockplus::host'], |
| 99 type => $sshkey_type, | 104 type => $sshkey_type, |
| 100 } | 105 } |
| 101 | 106 |
| 102 if $ensure == 'absent' { | 107 if $ensure == 'absent' { |
| 103 realize(Host[$title]) | 108 realize(Host[$title]) |
| 104 realize(Sshkey[$title]) | 109 realize(Sshkey[$title]) |
| 105 } | 110 } |
| 106 | 111 |
| 107 if $::role != undef and manifest_exists("adblockplus::host::$::role") { | 112 if $::role != undef and manifest_exists("adblockplus::host::$::role") { |
| 108 ensure_resource("adblockplus::host::$::role", $title, {name => $name}) | 113 ensure_resource("adblockplus::host::$::role", $title, {name => $name}) |
| 109 } | 114 } |
| 110 } | 115 } |
| OLD | NEW |