
Existe uma maneira de comunicar informações entre classes/recursos?
Eu tenho um perfil que desejo incluir em todos os nós para configurá-los como monitorados pelo Icinga que usa um recurso exportado:
class profile::icinga2::host {
@@::icinga2::object::host { $::fqdn:
display_name => $::fqdn,
address => $::ipaddress,
vars => hiera_hash('icinga_vars',{}) + {
"dns_lookup" => $::fqdn,
"dns_expected_answers" => $::ipaddress,
},
target => "/etc/icinga2/conf.d/puppet.d/${::fqdn}.conf"
}
}
Esses recursos são então declarados no servidor icinga usando o coletor de recursos:
<<| icinga2::object::host|>>
Quero poder personalizar a entrada vars no recurso profile::icinga2::host e, no momento, adicionar dados icinga_vars ao arquivo hiera yaml para o nó, por exemplo:
icinga_vars:
http_uri: "http://puppetboard.zoo.lan"
No entanto, o ideal seria fazer isso dentro de qualquer classe incluída pelo próprio nó.
Existe uma maneira de configurar dados em classes que possam ser lidos por uma classe diferente?
Os fatos não parecem a maneira certa de fazer isso e nem o puppetdb, existe uma alternativa?
Posso, por exemplo, criar uma classe icinga2::variable e declarar aqueles fora da classe profile::icinga2::host e depois iterar sobre eles na classe profile::icinga2::host? Como isso seria feito e como as dependências seriam tratadas, por exemplo, eu precisaria garantir que as icinga2::variables estejam prontas para serem lidas por profile::icinga2::host Obrigado