嘗試使用 Puppet 管理 apt 來源失敗

嘗試使用 Puppet 管理 apt 來源失敗

我試圖讓 Puppet 管理我的 Debian aptsources.list,但是,目錄編譯失敗並出現以下錯誤:

錯誤:無法從遠端伺服器檢索目錄:伺服器上出現錯誤 400:::apt::config_files 在使用 /etc/puppet/environments/products/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 帖子以及谷歌上的其他一些點擊。

我也在 apt.pp 中嘗試過include apt,但沒有成功。

答案1

事實證明命名空間是問題所在。

為了使其工作,我需要調用模組“apt”。透過在類別中指定include aptor ,它嘗試包含或呼叫自身。更改為(絕對名稱)可以解決問題。class { 'apt': }profiles::aptclass { '::apt': }

相關內容