这是一个cfengine2和3个问题。我正在尝试获取警报,以便在安装软件包并且可以升级时触发。有没有办法做到这一点?
就像下面的cfengine3一样。
classes:
"pkginstalled"
expression => fileexists("/pkgname");
reports:
Hr05|Hr16.ubuntu.debian.redhat.pkginstalled::
"Package needs to be upgraded."
这样的东西,但如果无法升级包,请不报告任何内容。以上只是报道了一切。
答案 0 :(得分:0)
CFEngine文档说:
“特定软件的版本以完全不同的方式描述,引起很多混淆。例如,常见的模型是使用主要版本号,次要版本号和补丁版本号,例如3.1.5。但是,许多维护人员都会自行添加,例如3.1.5-2或3.1.5-2.el5。由于这些模型是操作系统,软件和特定版本,因此您必须知道操作系统上使用的版本号。并且正确地参考它们.CFEngine无法为你准备好这些东西。“ https://auth.cfengine.com/archive/manuals/st-packages#How-CFEngine-compares-package-versions
话虽如此,你可以查询apt和yum以获取可更新的包:
这仅在您使用包管理器时才有用。这意味着您应该能够将结果放入slist并在报告中输出。如果你以另一种方式部署软件包,事情会变得更加困难。
编辑:如果你想为特定的软件包执行此操作,可以通过在apt命令中的“upgrade”之后放置软件包名称来实现,但我不知道如何使用yum执行此操作。我能想到的最好是使用cfengines returnszero函数和“yum list updates | grep $ packagename”或similair。
虽然感觉有点笨拙答案 1 :(得分:0)