在我的puppetserver上,我使用puppetlabs-apt模块配置存储库。我使用hiera来获取仓库的数据。如果我运行它,我会收到无法安装dirmngr的消息,原因是无法在存储库中找到它。 出现该错误是因为puppet在执行存储库之前尝试安装dirmngr。并且在模块中需要dirmngr。
是否有一种方法可以强制模块先执行存储库然后再安装dirmngr?
我的代码就是这样
class {'apt':
purge =>{
"/etc/apt/sources.list =>true",
},
}
答案 0 :(得分: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::Source[$dirmngr_apt_source]
和Package['dirmngr']
,但您仍然可以像从前那样在类外部声明这些资源之间的关系。此外,我认为这有点hack,听起来这可能是Apt模块中的错误或设计缺陷。
也就是说,考虑到Apt模块管理着Linux节点的Apt源,并且dirmngr包依赖于Apt源,因此在模块中不应该假设dirmngr包可以在配置之前找到。 Apt来源。 (或者,如果这是一个有效的假设,那么也许它需要更好的文档?)
因此,您可以考虑提出一个错误或检查是否已经存在一个错误。