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?