如何修复 Puppet 清单中的无效参数错误?

如何修复 Puppet 清单中的无效参数错误?

我在一个非常简单的 puppet 清单中遇到了一个看似不可能的错误。我只是尝试使用 example42 puppet-puppet 模块来运行 puppetmaster(使用 puppet 3.1.0)。这是我的 site.pp:

node 'se2' { 
    class { 'puppet::server' :
        mode => 'server' }    
}
Exec { path => "/usr/bin:/usr/sbin:/bin:/sbin" }
node default { }

这样,我收到错误:

Info: Loading facts in /var/lib/puppet/lib/facter/last_run.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppi_projects.rb
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter mode at /etc/puppet/manifests/site.pp:7 on node se2

(第 7 行是带模式的行)

我肯定做了一些愚蠢的事情,从我所看到的情况来看,模式是一个有效参数:

https://github.com/example42/puppet-puppet/blob/master/manifests/init.pp#L320

有什么建议么?

答案1

您通过调用来引用 server.pp puppet::server

请参阅此类 puppet::server https://github.com/example42/puppet-puppet/blob/master/manifests/server.pp

要引用带有参数“mode”的类,请使用 puppet.pp:

node 'se2' { 
  class { 'puppet' :
    mode => 'server',
  }    
}
Exec { path => "/usr/bin:/usr/sbin:/bin:/sbin" }
node default { }

答案2

该页面底部附近有以下内容:

### PuppetMaster configuration
if $puppet::mode == 'server' {
  include puppet::server
}

但是你的类已经是puppet::server。我不太熟悉编写提供程序,但包含自身的类似乎不太可能起作用。你可以尝试让你的类有不同的名字吗?

相关内容