puppet 可以將軟體包更新到最新的次要版本嗎?

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

目標是讓 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 上,這可能滿足 PHP 的要求ensure => latest,,我只是使用 PHP 作為範例。我還是想知道:

  • 管理次要版本的傀儡方式。 (如果有一個或兩個......我讀到至少你可以維護自己的儲存庫,但是是否有像我上面猜測的那樣的純傀儡語法?)
  • 顯然還有 PHP 以外的軟體包,您如何使用 puppet 來管理來自不同儲存庫的軟體包,或者可能是 RHEL/CentOS 以外的發行版等。
  • 我從木偶參考中讀到,確保“值可以匹配/./”,是正則表達式還是什麼?http://docs.puppetlabs.com/references/3.7.5/type.html#package-attribute-ensure

我在 RHEL/CentOS 7 上執行開源 Puppet 3.7.5。

答案1

不,puppet 無法更新到最新的次要版本,但只能確保特定版本,或可確保套件存在或最新。

您應該做的是建立自己的自訂儲存庫,其中僅包含與您相關的套件(例如 PHP 5.4 系列),然後在 puppet 中設定:

package { 'php-fpm': ensure => latest }

這將檢查每個木偶運行是否有更新。

另外,如果您不使用向您的系統提供更新的 PHP 軟體包的其他儲存庫,ensure => latest由於 CentOS 更新其軟體包的方式,它將完全按照您的需求運行。 CentOS 7 中永遠不會有 php-5.5,但 php 將停留在 5.4 系列。 5.5 和任何更新的更新將透過 php55、php56 等提供 - 這意味著您必須更改 puppet 清單中的套件名稱以反映您想要的版本,例如:

package { 'php56-fpm': ensure => latest }

所以,答案是否定的,您必須確保您的儲存庫僅提供您想要的主要版本,然後您可以ensure => latest在 puppet 中使用。

要在儲存庫中進行設置,您可以使用以下內容:

  • 包括
  • 排除
  • 優先事項

相關內容