例如,我安装了 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 为例。我还是想知道:
我在 RHEL/CentOS 7 上运行开源 Puppet 3.7.5。
不,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 中使用。
要在存储库中进行设置,您可以使用以下内容:
| 归档时间: |
|
| 查看次数: |
1783 次 |
| 最近记录: |