木偶可以更新包到最新的次要版本吗?

Mac*_*oke 5 puppet

例如,我安装了 php-fpm:

Name        : php-fpm
Arch        : x86_64
Version     : 5.4.16
Release     : 23.el7_0.3
Size        : 4.5 M
Repo        : installed
From repo   : updates
Summary     : PHP FastCGI Process Manager
URL         : http://www.php.net/
License     : PHP and Zend and BSD
Run Code Online (Sandbox Code Playgroud)

目标是使 PHP 保持在最新的 5.4 版本上。目前我在清单中有这个:ensure => '5.4.16-23.el7_0.3',.

如果出现新版本或发行版,则不会更新,而我不希望它意外更新到 5.5。

我尝试了以下方法:

  • ensure => '5.4.16',
  • ensure => '5.4',
  • ensure => '5.4.16-*',
  • ensure => '5.4.*',

所有这些都给了我类似的东西:

change from 5.4.16-23.el7_0.3 to 5.4 failed: Could not update: Failed to update to version 5.4, got version 5.4.16-23.el7_0.3 instead

这是在 RHEL/CentOS 上,它可能满足简单ensure => latest,的 PHP要求,我只是以 PHP 为例。我还是想知道:

  • 管理次要版本的傀儡方式。(如果有一个或两个......我读到至少你可以维护自己的 repo,但是有没有像我上面猜到的那样的纯 puppet 语法?)
  • 显然还有 PHP 以外的软件包,您将如何使用 puppet 来管理可能来自不同 repo 的软件包,或者可能用于 RHEL/CentOS 以外的发行版等。
  • 我从傀儡参考中读到确保“值可以匹配/./”,是正则表达式还是什么?http://docs.puppetlabs.com/references/3.7.5/type.html#package-attribute-ensure

我在 RHEL/CentOS 7 上运行开源 Puppet 3.7.5。

Jak*_*sic 7

不,puppet 不能更新到最新的小版本,但只能确保特定版本,或者可以确保包存在,或最新。

您应该做的是创建您自己的自定义存储库,它将只包含您相关的包(例如 5.4 系列的 PHP),然后在 puppet 中设置:

package { 'php-fpm': ensure => latest }
Run Code Online (Sandbox Code Playgroud)

如果有更新,这将检查每个木偶运行。

此外,如果您不使用为您的系统提供更新的 PHP 软件包的额外存储库,ensure => latest它将完全按照您的意愿运行 - 因为 CentOS 更新其软件包的方式。CentOS 7 永远不会有 php-5.5,但 php 会停留在 5.4 系列。5.5 和任何更新的更新将通过 php55、php56 等提供 - 这意味着您必须更改 puppet manifest 中的包名称以反映您想要的版本,例如:

package { 'php56-fpm': ensure => latest }
Run Code Online (Sandbox Code Playgroud)

所以,答案是否定的,你必须确保你的存储库只提供你想要的主要版本,然后你可以ensure => latest在 puppet 中使用。

要在存储库中进行设置,您可以使用以下内容:

  • 包括
  • 排除
  • 优先事项