Puppet: classe já declarada

2

Atualmente, estou reorganizando a estrutura do meu código de fantoches para um modelo, que usa perfis e papéis.

Comecei com perfis e estava testando, mas já tive problemas: /

Na minha definição de nó, faço o seguinte:

node 'dev.server' {
  include profile::php
}
# modules/profiles/manifests/php.pp
class profile::php {
  include apache::mod::php
  class{ 'php': }
  php::module { "mcrypt": }
  php::module { "mysql": }
  php::module { "gd": }
}

Quando eu executo o agente fantoche no nó, recebo o erro

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate declaration: Class[Profile::Php] is already declared; cannot redeclare at /etc/puppet/environments/production/modules/profile/manifests/php.pp:5 on node

No entanto, quando renomeio o perfil para profile :: php2, ele está funcionando. O que está causando o problema que já foi declarado?

    
por paul.tw 05.03.2014 / 09:51

1 resposta

4

A alteração de class{ 'php': } para class{ '::php': } (observe os dois pontos antes de php) o corrigiu.

    
por 05.03.2014 / 10:01