2014-12-01 41 views
0

因此,我使用https://forge.puppetlabs.com/pdxcat/nrpe模塊試圖找出跨主機的NRPE自動化。木偶;請撥打另一個.pp

一個可用的用法是

nrpe::command { 
    'check_users': 
     ensure => present, 
     command => 'check_users -w 5 -c 10'; 
} 

反正有做這些命令的「組」,並叫他們的特定節點上?

例如:

你有5種不同的NRPE:命令每個限定了不同的檢查,然後調用這些特定檢查?

我基本上試圖找出是否可以將某些檢查/命令組合在一起,而不是在主sites.pp文件中設置大量文本。這也將允許在衆多節點上定製模板/配置。

謝謝!

編輯: 這是命令,它用'check_users'部分調用時應該做什麼。如果我可以用一組「nrpe:command」來創建一個類,然後通過該模塊調用該類,它應該可以工作。不過,對不起。在傀儡仍然是新的。再次感謝。

define nrpe::command (
    $command, 
    $ensure  = present, 
    $include_dir = $nrpe::params::nrpe_include_dir, 
    $libdir  = $nrpe::params::libdir, 
    $package_name = $nrpe::params::nrpe_packages, 
    $service_name = $nrpe::params::nrpe_service, 
    $file_group = $nrpe::params::nrpe_files_group, 
) { 

    file { "${include_dir}/${title}.cfg": 
    ensure => $ensure, 
    content => template('nrpe/command.cfg.erb'), 
    owner => root, 
    group => $file_group, 
    mode => '0644', 
    require => Package[$package_name], 
    notify => Service[$service_name], 
    } 

} 
+0

木偶支持 「(OO)繼承」 和 「注射」。所以是的,有辦法將主機分組。 – 2014-12-01 21:17:32

+0

任何想法將用什麼語法來調用注射? – firas 2014-12-01 23:01:12

回答

1

你說什麼版本?在傀儡最新版本中,繼承是不推薦的,那麼你不應該使用它。

最簡單的方法是使用「基線」。

假設你正在使用的清單目錄(manifest = $confdir/manifestspuppet.conf內),只需創建與下面的內容$confdir/manifests/minimal.pp(您想使用或$ confdir /艙單/ nrpe_config.pp或任何類名):

class minimal { 
    nrpe::command { 'check_users': 
    ensure => present, 
    command => 'check_users -w 5 -c 10', 
    } 
} 

然後就打電話給你的節點定義裏面這個類(讓我們在$ confdir /艙單/ my_node.pp說):

node 'my_node.foo.bar' { 
    include minimal 
} 
+0

是的,儘管編寫站點本地模塊來容納這樣的類會更清潔。用這樣的定義亂扔你的'manifests'目錄沒有任何好處。這裏的'.pp'文件應該只包含應該應用於所有節點的節點塊和全局變量以及資源,但不屬於類。 (而不是全局資源,應該在站點本地或Forge模塊中使用'include'語句,這些語句適用於所有節點。) – 2014-12-02 10:14:32

+0

這種工作 - 它實際上並沒有應用「NRPE :: COMMAND」部分我已安裝的模塊。我覺得我必須在我已經安裝的NRPE模塊中創建這些特定的類,並從模塊內部調用它們,以便某些語法(如NRPE :: command)實際上以模塊設計的方式工作。 – firas 2014-12-02 15:29:39