¿Hay alguna manera de comunicar información entre clases/recursos de títeres?

¿Hay alguna manera de comunicar información entre clases/recursos de títeres?

¿Existe alguna manera de comunicar información entre clases/recursos?

Tengo un perfil que quiero incluir en todos los nodos para configurarlos como monitoreados por Icinga, que utiliza un 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"
  }
}

Luego, estos recursos se declaran en el servidor icinga utilizando el recolector de recursos:

<<| icinga2::object::host|>>

Quiero poder personalizar la entrada vars en el recurso perfil::icinga2::host y en este momento hacerlo agregando datos icinga_vars en el archivo hiera yaml para el nodo, por ejemplo:

icinga_vars:
    http_uri: "http://puppetboard.zoo.lan" 

Sin embargo, lo ideal sería hacer esto dentro de cualquier clase incluida en el propio nodo.

¿Existe alguna forma de configurar datos en clases que luego puedan ser leídos por una clase diferente?

Los hechos no parecen la forma correcta de hacerlo y Puppetdb tampoco, ¿hay alguna alternativa?

¿Puedo, por ejemplo, crear una clase icinga2::variable y declararlas fuera de la clase perfil::icinga2::host y luego iterar sobre ellas en la clase perfil::icinga2::host? ¿Cómo se haría eso y cómo se manejarían las dependencias? Por ejemplo, necesitaría asegurarme de que las variables icinga2::estén listas para ser leídas por perfil::icinga2::host. Gracias.

información relacionada