apt-puppetlabs先做回购

问题描述 投票:1回答:1

在我的puppetserver上我使用puppetlabs-apt模块来配置repos。我使用hiera来获取回购的数据。如果我运行它我收到dirmngr无法安装的消息,因为它无法在回购中找到。之所以出现这个错误是因为木偶试图在他做回购之前安装dirmngr。并且模块中需要dirmngr。

有没有办法强制模块先做回购然后让它安装dirmngr?

我的代码是这样的

class {'apt':
purge =>{
"/etc/apt/sources.list =>true",
},
}
puppet apt hiera
1个回答
0
投票

如果我理解了这个问题,你应该能够做到这样的事情:

$dirmngr_apt_source = ...

class { 'apt':
  purge => {
    "/etc/apt/sources.list" => true
  }
}

Apt::Source[$dirmngr_apt_source] -> Package['dirmngr']

进一步说明:

  • 变量$dirmngr_apt_source用于填写dirmngr包所在的Apt源。(完全免责声明:我对Ubuntu不太了解。)
  • 虽然Apt类声明了资源Apt::Source[$dirmngr_apt_source]Package['dirmngr'],但您仍然可以在类之外声明这些资源之间的关系,就像我在那里所做的那样。

此外,在我看来,这有点像黑客,听起来这可能是Apt模块中的错误或设计缺陷。

也就是说,考虑到Apt模块管理Linux节点的Apt源,而dirmngr包依赖于Apt源,模块中不应该假设在配置Apt源之前可以找到dirmngr包。 。 (或者,如果它是一个有效的假设,那么它可能需要更好的文档?)

因此,您可以考虑提出错误或检查是否已存在错误。

© www.soinside.com 2019 - 2024. All rights reserved.