Puppet
模組中的 Puppet 類依賴關係
目前,我正在編寫一個 puppet 模組來管理我的 sensu 配置。
將整個東西分成幾個類,並將它們放入 sensu“manifests”目錄中的各自文件中:
sensu::common (common.pp) sensu::common::package (common/package.pp) sensu::common::config (common/config.pp) sensu::server (server.pp) sensu::server::config (server/config.pp)
在我的
server.pp
,我有以下class sensu::server { include sensu::common include sensu::server::config Class['sensu::common'] -> Class['sensu::server::config'] }
nodes.pp
看起來像這樣:class role_monitoring_server { $my_role = 'monitoring_server' ... include sensu::server } node my_cool_server { include role_monitoring_server }
正如你們大多數人可能已經猜到的那樣,我在類依賴方面遇到了麻煩
server.pp
:Class['sensu::common'] -> Class['sensu::server::config']
只是行不通。該類
sensu::server::config
需要將一個文件放在一個目錄中,該目錄只能由sensu::common
. 問題是,這sensu::server::config
將始終在sensu::common
預期之前而不是之後應用。我想念什麼?網上有很多問題,但我就是找不到答案,因為我不知道要尋找什麼。
您正在與該類創建依賴關係,但與其“子級”
sensu::common
之間沒有隱式依賴關係,並且. 所以,除非你的配置看起來不是這樣(我假設這個類只是幾行?)這些仍然可以在任何時候與類相關的自由應用。sensu::common``package``config``sensu::common``include``sensu::server::config
您可能希望與包含所需資源的類建立關係;您正在有效地創建一個類中的每個資源與另一個類中的每個資源的需求關係(無論需要其中一個,或兩者都需要):
Class['sensu::common::package'] -> Class['sensu::server::config'] Class['sensu::common::config'] -> Class['sensu::server::config']