apt puppetlabs首先进行回购

apt puppetlabs首先进行回购,puppet,apt,hiera,Puppet,Apt,Hiera,在我的puppetserver上,我使用puppetlabs apt模块来配置repo。我用hiera来获取回购协议的数据。如果我运行它,我会收到这样一条消息:dirmngr无法安装,因为在repos中找不到它。 这个错误是因为puppet试图在进行回购之前安装dirmngr。模块中需要dirmngr 有没有办法强迫模块先执行repos,然后让它安装dirmngr 我的代码是这样的 class {'apt': purge =>{ "/etc/apt/sources.list =>tr

在我的puppetserver上,我使用puppetlabs apt模块来配置repo。我用hiera来获取回购协议的数据。如果我运行它,我会收到这样一条消息:dirmngr无法安装,因为在repos中找不到它。 这个错误是因为puppet试图在进行回购之前安装dirmngr。模块中需要dirmngr

有没有办法强迫模块先执行repos,然后让它安装dirmngr

我的代码是这样的

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

如果我理解这个问题,你应该可以这样做:

$dirmngr\u apt\u source=。。。
类{'apt':
清除=>{
“/etc/apt/sources.list”=>true
}
}
Apt::Source[$dirmngr\u Apt\u Source]->Package['dirmngr']
进一步解释:

  • 变量
    $dirmngr\u apt\u source
    供您填写dirmngr包所在的apt源。(完整免责声明:我对Ubuntu了解不多。)
  • 尽管Apt类声明了资源
    Apt::Source[$dirmngr\u Apt\u Source]
    Package['dirmngr']
    ,但您仍然可以从类外部声明这些资源之间的关系,就像我在那里做的那样
另外,在我看来,这是一个有点黑客行为,听起来这可能是Apt模块中的一个bug或设计缺陷

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


这样,你可能会考虑提高bug或者检查是否已经有bug。

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

$dirmngr\u apt\u source=。。。
类{'apt':
清除=>{
“/etc/apt/sources.list”=>true
}
}
Apt::Source[$dirmngr\u Apt\u Source]->Package['dirmngr']
进一步解释:

  • 变量
    $dirmngr\u apt\u source
    供您填写dirmngr包所在的apt源。(完整免责声明:我对Ubuntu了解不多。)
  • 尽管Apt类声明了资源
    Apt::Source[$dirmngr\u Apt\u Source]
    Package['dirmngr']
    ,但您仍然可以从类外部声明这些资源之间的关系,就像我在那里做的那样
另外,在我看来,这是一个有点黑客行为,听起来这可能是Apt模块中的一个bug或设计缺陷

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


这样,你可能会考虑提高bug或者检查是否已经有bug。

在下面的答案@ USE3045 725中得到一些反馈是很好的。我想确保它是正确的,或者编辑它。这个MR与您的问题有关吗?如果能在下面的答案@user3045725上得到一些反馈,那就太好了。我想确保它是正确的,或者编辑它。这个MR与您的问题有关吗?