Я пытаюсь заставить Марионетку управлять моим Debian способный sources.list, однако, сбои компиляции каталога с этой ошибкой:
Ошибка: не Мог получить каталог от удаленного сервера: Ошибка 400 на СЕРВЕРЕ::: склонный:: config_files не является хешем или массивом при доступе к нему со списком в/etc/puppet/environments/production/modules/apt/manifests/setting.pp:45 на узле [имя хоста]
Я понятия не имею, где я должен обеспечить:: склонный:: 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, но напрасно.
Оказывается, проблема была в пространстве имен.
Для того, чтобы это работало, мне нужно вызвать МОДУЛЬ 'apt'. Указав include apt
или class {'apt':}
в классе profiles :: apt
, он пытается включить или вызвать себя. Переход на класс {':: apt':}
(абсолютное имя) устраняет проблему.