O Puppet 2.7 permite uma herança de classe de uma classe “params” não-parametrizada?

1

Estou recebendo o seguinte erro quando executo puppet-lint :

$ puppet-lint manifests/*
manifests/init.pp - WARNING: class inheriting from params class on line 72

Eu mesmo fiz uma pesquisa rápida no duckduckgo.com e consegui:

link

No entanto, nossas versões do Puppet Agent são todas 2.7 ou posteriores, e nossos Puppet Masters são todos 3.0 ou posteriores.

Para referência, o código init.pp em questão é o seguinte:

class myclass (
    $zone = 'top',
    $::myclass::params::base_url,
    $::myclass::params::username,
) inherits myclass::params {
...

O código em params.pp é o seguinte:

class myclass::params {
    $base_url  = hiera('myclass::base_url','https://beta.tpsreports.com/coversheets/')
    $username = hiera('clap::base_url','prod')
}

Mesmo se a pesquisa Hiera falhar, eu ainda não deveria estar recebendo erros como este:

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

Agora que já falei sobre esse histórico, ao qual estou mais do que disposto a adicionar, se alguém perguntar, minhas perguntas são as seguintes:

  1. Se a minha params classe irá fornecer parâmetros, mesmo que a pesquisa hiera de alguma forma falhar, por que estou recebendo esse erro?
  2. Preciso usar a solução alternativa horrível (ou seja, "O que você deveria ter feito" do arquivo puppet-lint.com link, mesmo que eu tenha uma versão Puppet maior que 2.6.2 em todos os casos?
por Nathan Basanese 10.09.2016 / 03:04

1 resposta

2

Sua classe init.pp deve ser:

class myclass (
    $zone = 'top',
    $base_url = $::myclass::params::base_url,
    $username = $::myclass::params::username,
) inherits myclass::params {

Você não coloca diretamente as variáveis herdadas na sua lista de parâmetros; você os usa como valores padrão para os parâmetros dessa classe.

    
por 10.09.2016 / 07:18