
Considere estes dois arquivos do módulo Puppet:
# File modules/a/manifests/b/c.pp
class a::b::c {
include b::c
}
# File modules/b/manifests/c.pp
class b::c {
notify { "In b::c": }
}
Parece que quando o Puppet atinge a include b::c
diretiva em class a::b::c
, ele procura o arquivo *.pp correspondente olhando para trás a partir da classe atual e decide encontrar o arquivo correto localizado em ../../b/c.pp
. Em outras palavras, ele resolve b::c
para o mesmo arquivo *.pp em que a include b::c
instrução aparece:modules/a/manifests/b/c.pp
Eu esperava (e gostaria) que encontrasse e carregasse o arquivo modules/b/manifests/c.pp
. Existe uma maneira de fazer o Puppet fazer isso? Caso contrário, parece-me que os nomes dos módulos não podem conter nenhum outro nome de módulo em nenhum lugar dentro deles, o que é uma restrição bastante surpreendente.
Responder1
para forçá-lo a usar 'include ::b::c'