apt-puppetlabs首先进行回购

时间:2019-03-15 19:39:59

标签: puppet apt hiera

在我的puppetserver上,我使用puppetlabs-apt模块配置存储库。我使用hiera来获取仓库的数据。如果我运行它,我会收到无法安装dirmngr的消息,原因是无法在存储库中找到它。 出现该错误是因为puppet在执行存储库之前尝试安装dirmngr。并且在模块中需要dirmngr。

是否有一种方法可以强制模块先执行存储库然后再安装dirmngr?

我的代码就是这样

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

1 个答案:

答案 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类声明了资源Apt::Source[$dirmngr_apt_source]Package['dirmngr'],但您仍然可以像从前那样在类外部声明这些资源之间的关系。

此外,我认为这有点hack,听起来这可能是Apt模块中的错误或设计缺陷。

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

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