在我的puppetserver上我使用puppetlabs-apt模块来配置repos。我使用hiera来获取回购的数据。如果我运行它我收到dirmngr无法安装的消息,因为它无法在回购中找到。之所以出现这个错误是因为木偶试图在他做回购之前安装dirmngr。并且模块中需要dirmngr。
有没有办法强制模块先做回购然后让它安装dirmngr?
我的代码是这样的
class {'apt':
purge =>{
"/etc/apt/sources.list =>true",
},
}
如果我理解了这个问题,你应该能够做到这样的事情:
$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::Source[$dirmngr_apt_source]
和Package['dirmngr']
,但您仍然可以在类之外声明这些资源之间的关系,就像我在那里所做的那样。此外,在我看来,这有点像黑客,听起来这可能是Apt模块中的错误或设计缺陷。
也就是说,考虑到Apt模块管理Linux节点的Apt源,而dirmngr包依赖于Apt源,模块中不应该假设在配置Apt源之前可以找到dirmngr包。 。 (或者,如果它是一个有效的假设,那么它可能需要更好的文档?)
因此,您可以考虑提出错误或检查是否已存在错误。