Existe algum motivo para você não ter a definição da classe principal no arquivo init.pp
?
Meu entendimento da descoberta de classes é rudimentar, mas o arquivo modules/mod1/mod1.pp
seria automaticamente verificado para a classe mod1::mod1
, não para a classe mod1
.
Tanto quanto eu saiba, a classe mod1
deve sempre ser definida em init.pp
, mas isso não significa que a configuração do seu módulo inteiro esteja lá - as subclasses são úteis!
O design do módulo que, acredito, é recomendado hoje em dia é o seguinte:
mod1/init.pp
:
class mod1 {
include mod1::install
include mod1::config
include mod1::service
}
mod1/install.pp
:
class mod1::install {
package { "somepackage":
ensure => installed,
}
}
mod1/config.pp
:
class mod1::config {
file { "/etc/someapp.conf":
content => "foo",
require => Class["mod1::install"],
notify => Class["mod1::service"],
}
}
mod1/service.pp
:
class mod1::service {
service { "someapp":
ensure => running,
}
}
Editar: além disso, você não deve usar import
dentro dos módulos:
The behavior of import within autoloaded manifests is undefined, and may vary randomly between minor versions of Puppet. You should never place import statements in modules; they should only exist in site.pp.