Falha ao tentar gerenciar fontes apt com Puppet

Falha ao tentar gerenciar fontes apt com Puppet

Estou tentando fazer com que o Puppet gerencie meu Debian apt sources.list, no entanto, a compilação do catálogo falha com este erro:

Erro: Não foi possível recuperar o catálogo do servidor remoto: Erro 400 no SERVIDOR: ::apt::config_files não é um hash ou array ao acessá-lo com a lista em /etc/puppet/environments/production/modules/apt/manifests/setting. pp:45 no nó [nome do host]

Não tenho ideia de onde devo fornecer ::apt::config_files ou o que preciso colocar nele. Meus manifestos contêm o seguinte:

# site.pp
node <hostname> {
  include roles::myrole
}

# myrole.pp
class roles::myrole.pp {
  include profiles::apt
}

# apt.pp
class profiles::apt {

  # Get our apt sources out of Hiera.
  $hiera_apt_sources = hiera_hash(apt_sources)

  # Create our apt sources.
  create_resources(apt::source, $hiera_apt_sources)

}

# hieradata (yaml)
apt_sources:
  'debian_stable':
    location: 'ftp.be.debian.org/debian/'
    release: 'stable'
    repos: 'main contrib non-free'
  'debian_security':
    location: 'security.debian.org'
    release: 'updates'
    repos: 'main contrib non-free'

Estou faltando algo óbvio aqui? Eu olhei a documentação ema forjaeesta postagem do Puppetlabse alguns outros sucessos no Google.

Também tentei include aptno apt.pp, mas sem sucesso.

Responder1

Acontece que o namespace era o problema.

Para que isso funcione eu preciso que o MÓDULO 'apt' seja chamado. Ao especificar include aptou class { 'apt': }na classe profiles::apt, ele tenta incluir ou chamar a si mesmo. Mudar para class { '::apt': }(nome absoluto) resolve o problema.

informação relacionada