CFEngine - 如果安装了特定的包版本则设置变量

CFEngine - set variable if a specific package version is installed

一个脚本需要支持Fedora 和Centos 两个不同版本httpd (Apache) 的服务器。 CFEngine 用于创建配置文件,它需要根据系统中安装的 httpd 版本将不同的部分放入文件中。如何根据安装的版本将变量设置为 true/false 以便我可以适当地生成文件?我能找到的所有示例都只涉及安装、升级或删除包。

您可以使用 packagesmatching 获取当前安装的 httpd 版本。您可以将它与 ifelsestrcmpregcmp 结合使用,以便您可以设置不同的变量和 类,您可能会在模板中使用它们。

我在 CentOS 7.3 上使用 CFEngine (3.9)。这个版本设置硬classcentos。您可以使用它来创建不同的部分。 (也就是硬套了classredhat,因为CentOS是从RedHat派生出来的)。您可以通过以下方式找到系统上可用的 classes:

cf-promises -v