Ошибка при попытке управления подходящими источниками с помощью Puppet

Ошибка при попытке управления подходящими источниками с помощью Puppet

Я пытаюсь заставить Puppet управлять моим Debian apt sources.list, однако компиляция каталога завершается с ошибкой:

Ошибка: Не удалось получить каталог с удаленного сервера: Ошибка 400 на СЕРВЕРЕ: ::apt::config_files не является хешем или массивом при доступе к нему с помощью списка в /etc/puppet/environments/production/modules/apt/manifests/setting.pp:45 на узле [имя_хоста]

Я понятия не имею, где мне следует предоставить ::apt::config_files или что мне нужно в него вставить. Мои манифесты содержат следующее:

# 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'

Я что-то очевидное упускаю? Я просмотрел документацию накузницаиэтот пост Puppetlabsи некоторые другие результаты поиска в Google.

Я также пытался сделать это include aptв apt.pp, но безрезультатно.

решение1

Оказывается, проблема была в пространстве имен.

Чтобы это работало, мне нужно, чтобы МОДУЛЬ 'apt' был вызван. Указывая include aptили class { 'apt': }в классе profiles::apt, он пытается включить или вызвать себя. Изменение на class { '::apt': }(абсолютное имя) устраняет проблему.

Связанный контент