
클래스/리소스 간에 정보를 통신할 수 있는 방법이 있나요?
내보낸 리소스를 사용하는 Icinga에서 모니터링하도록 설정하기 위해 모든 노드에 포함하려는 프로필이 있습니다.
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"
}
}
그런 다음 이러한 리소스는 리소스 수집기를 사용하여 icinga 서버에서 선언됩니다.
<<| icinga2::object::host|>>
profile::icinga2::host 리소스의 vars 항목을 사용자 정의하고 현재 노드의 hiera yaml 파일에 icinga_vars 데이터를 추가하고 싶습니다. 예:
icinga_vars:
http_uri: "http://puppetboard.zoo.lan"
그러나 이상적으로는 노드 자체에 포함된 모든 클래스 내에서 이 작업을 수행합니다.
다른 클래스에서 읽을 수 있는 데이터를 클래스에 설정하는 방법이 있습니까?
사실은 이를 수행하는 올바른 방법이 아닌 것 같고 puppetdb도 마찬가지입니다. 대안이 있습니까?
예를 들어 icinga2::variable 클래스를 생성하고 이를 profile::icinga2::host 클래스 외부에서 선언한 다음 profile::icinga2::host 클래스에서 반복할 수 있습니까? 그 작업은 어떻게 수행되고 종속성은 어떻게 처리됩니까? 예를 들어 icinga2::variables가 profile::icinga2::host에서 읽을 준비가 되었는지 확인해야 합니다. 감사합니다.