在 Puppet 中使用 nagios 时,语法错误为‘{’;应为‘}’

在 Puppet 中使用 nagios 时,语法错误为‘{’;应为‘}’

这对我来说是一个大问题,因为我不熟悉 puppet。

傀儡大师出现错误:

debug: importing '/etc/puppet/manifests/nodes/group-1.pp'
err: Could not parse for environment production: Syntax error at '{'; expected '}' at /etc/puppet/manifests/nodes/group-1.pp:6

Puppet 客户端出现错误:

错误:无法从远程服务器检索目录:服务器上的错误 400:无法解析环境生产:/etc/puppet/manifests/nodes/group-1.pp:6 处的“{”处语法错误;预期为“}”

在 group-1.pp 中:

node 'group1'
{
        include ntp 

        class { 'nagios::host':           #this is line 6
                nodename => $clientcert,
                appname => 'test',
        }   
}

模块 module/nagios/host.pp 中的 nagios::host 代码如下:

class nagios::host($nodename, $hostgroup) {


  file { '/usr/lib/nagios/plugins':
    mode    => "755",
    require => Package["nagios-plugins"],
  }

  ...

    @@nagios_service { "${nodename}_check_ssh":
      ensure => present,
      use => 'generic-service',
      host_name => "${nodename}",
      notification_interval => 60,
      flap_detection_enabled => 0,
      service_description => "SSH",
      check_command => "check_ssh",
      target => "/etc/nagios3/services.d/${nodename}.cfg",
    } 
}

并且文件 module/nagios/init.pp 是空白的

我该如何修复它?

答案1

Puppet 0.25 不支持参数化类,您必须升级到 puppet > 2.6。

答案2

解决了。​​puppet master 版本是 0.25,默认在 ubuntu 10.04 LTS 上。我已将其升级到 2.7.14,并且运行正常。

答案3

我曾经遇到过类似的问题,结果发现只是简单的语法问题。在文档的某个地方我遇到了语法错误,但我在文档末尾才看到这个错误。所以我建议你检查一下括号、引号和逗号。

相关内容