运行puppet-lint时出现以下错误:
$ puppet-lint manifests/* manifests/init.pp - WARNING: class inheriting from params class on line 72
我自己在duckduckgo.com上快速search,得到这个:
http://puppet-lint.com/checks/class_inherits_from_params_class/
然而,我们的木偶代理版本都是2.7或更高版本,我们的木偶大师都是3.0或更高版本。
作为参考,问题的init.pp代码如下所示:
class myclass ( $zone = 'top', $::myclass::params::base_url, $::myclass::params::username, ) inherits myclass::params { ...
在params.pp的代码如下:
class myclass::params { $base_url = hiera('myclass::base_url','https://beta.tpsreports.com/coversheets/') $username = hiera('clap::base_url','prod') }
即使Hiera查找失败,我仍然不应该得到像这样的错误:
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Must pass ::myclass::params::base_url to Class[Myclass] at /etc/puppet/manifests/nodes/beta_servers_0.pp:126 on node beta-web-server-0.tpsreports.com
现在我已经经历了一些这样的背景,我很愿意补充,如果有人问,我的问题如下:
params类将提供参数,即使hiera查找以某种方式失败,为什么我得到这个错误? 2.6.2 ? 你的init.pp类应该是这样的:
class myclass ( $zone = 'top', $base_url = $::myclass::params::base_url, $username = $::myclass::params::username, ) inherits myclass::params {
您不直接将inheritance的variables放在参数列表中; 你使用它们作为这个类的参数的默认值。