A alteração de class{ 'php': }
para class{ '::php': }
(observe os dois pontos antes de php) o corrigiu.
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?