在我的puppetserver上,我使用puppetlabs-app模块配置存储库。我使用hiera获取存储库的数据。如果我运行它,我会收到无法安装dirmngr的消息,因为它在存储库中找不到。之所以出现此错误,是因为Puppet试图在进行回购之前先安装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类声明了资源
Apt::Source[$dirmngr_apt_source]
和Package['dirmngr']
,但您仍然可以像我那样从班级外部声明这些资源之间的关系。
另外,我认为这是一个黑客,听起来这可能是APT模块中的错误或设计缺陷。
也就是说,考虑到APT模块管理Linux节点的APT源,并且DirMNGR软件包取决于APT源,因此在模块中找不到可以在配置之前找到DirMngr软件包的假设APT来源。(或者,如果这是一个有效的假设,那么也许需要更好的文档?)
因此,您可以考虑提出错误或检查是否已经存在错误。