Puppet

當存在多個版本時,Puppet Package 類無法檢測已安裝的包

  • December 17, 2019

我正在嘗試安裝與kernel-devel正在執行的核心版本匹配的軟體包。

我的猜測是:

 package { 'kernel-devel':
   ensure => "${facts['kernelrelease']}",
 }

kernel-devel但如果已經安裝了多個軟體包,它就不起作用。這是我得到的錯誤:

Error: Could not update: Failed to update to version 3.10.0-957.21.3.el7.x86_64, got version 3.10.0-957.21.3.el7; 3.10.0-1062.4.3.el7; 3.10.0-1062.9.1.el7 instead

所以包已經安裝,但是 Package 類引發錯誤,因為(顯然)它執行字元串比較而不是查看版本列表。

處理這個問題的正確方法是什麼?

除非我有誤解,否則您可以使用資源標題中的版本來解決這個問題。

package { "kernel-devel-${facts['kernelrelease']}":
 ensure => present,
}

或者,如果您有其他依賴於 ‘kernel-devel’ 的資源,您可以使用 name 屬性。

package { 'kernel-devel':
 name   => "kernel-devel-${facts['kernelrelease']}",
 ensure => present,
}

[root@aaron ~]# dnf list installed kernel-devel
Installed Packages
kernel-devel.x86_64                                                                5.3.11-200.fc30                                                                @updates
kernel-devel.x86_64                                                                5.3.14-200.fc30                                                                @updates
[root@aaron ~]# uname -a
Linux aaron 5.3.15-200.fc30.x86_64 #1 SMP Thu Dec 5 15:18:00 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@aaron ~]# puppet apply kernel-devel.pp 
Notice: Compiled catalog for aaron.tsp in environment production in 0.54 seconds
Notice: /Stage[main]/Main/Package[kernel-devel-5.3.15-200.fc30.x86_64]/ensure: created
Notice: Applied catalog in 62.18 seconds
[root@aaron ~]# dnf list installed kernel-devel
Installed Packages
kernel-devel.x86_64                                                                5.3.11-200.fc30                                                                @updates
kernel-devel.x86_64                                                                5.3.14-200.fc30                                                                @updates
kernel-devel.x86_64                                                                5.3.15-200.fc30                                                                @updates

引用自:https://serverfault.com/questions/995691