使用 puppet 我想以受控方式更新我的(CentOS 5 和 6 服务器)上的软件包。因此我不想使用ensure=>latest
而是ensure=>3.0.1-1
.
例子:
class puppet::installation inherits puppet {
package { "puppet":
ensure => "3.0.1-1",
}
}
Run Code Online (Sandbox Code Playgroud)
更新工作正常,但傀儡代理一直抱怨有区别:
/Stage[main]/Puppet::Installation/Package[puppet]/ensure: current_value 3.0.1-1.el6, should be 3.0.1-1 (noop)
Run Code Online (Sandbox Code Playgroud)
我可以通过将确保规则更改为3.0.1-1.el6
但在 CentOS 5 上不起作用来解决此问题。
是否有一种简短/干净的方法来解决这个问题,或者我是否必须编写单独的、依赖于 os-releaseversion 的规则。
我一直在搜索解决方案,但没有找到与这个特定问题有关的任何内容。
对相关示例的任何建议或参考将不胜感激。
Puppet 实际上还没有任何这方面的功能(尽管他们确实需要它)。
您可以使用yum-versionlock
yum 插件将特定 RPM 包锁定在特定版本,然后使用 puppet 来控制版本锁配置。
有关其他一些解决方法,请参阅此相关问题。