При запуске появляется следующая ошибка puppet-lint
:
$ puppet-lint manifests/*
manifests/init.pp - WARNING: class inheriting from params class on line 72
Я быстро поискал на duckduckgo.com и получил следующее:
http://puppet-lint.com/checks/class_inherits_from_params_class/
Однако все наши версии Puppet Agent - 2.7 или новее, а наши Puppet Masters - все 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
class предоставит параметры, даже если поиск по hiera каким-то образом не удался, почему я получаю эту ошибку? 2.6.2
во всех случаях? Ваш init.pp
класс следует читать:
class myclass (
$zone = 'top',
$base_url = $::myclass::params::base_url,
$username = $::myclass::params::username,
) inherits myclass::params {
Вы не помещаете унаследованные переменные напрямую в свой список параметров; вы используете их как значения по умолчанию для параметров этого класса.