
有沒有辦法在類別/資源之間傳遞訊息?
我想在所有節點上包含一個配置文件,以將它們設置為由使用導出資源的 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 條目,目前透過將 icinga_vars 資料新增至節點的 hiera yaml 檔案中來實現,例如:
icinga_vars:
http_uri: "http://puppetboard.zoo.lan"
但理想情況下,我會在節點本身包含的任何類別中執行此操作。
有沒有一種方法可以在類別中設定數據,然後可以由不同的類別讀取?
事實似乎不是正確的做法,puppetdb 也不是,有其他選擇嗎?
例如,我可以建立一個 icinga2::variable 類別並在 profile::icinga2::host 類別之外聲明這些類,然後在 profile::icinga2::host 類別中迭代它們嗎?如何完成以及如何處理依賴項,例如我需要確保 icinga2::variables 已準備好由 profile::icinga2::host 讀取 謝謝