我是CFEngine的新手,我正在尝试根据主机名执行某些操作。
例如:所有具有稳定性的主机名应包含来自slist 1的包 所有具有测试的主机名都应该包含来自slist 2的包
bundle agent package_lists {
packages:
stable&dist_class::
"$(user_packages.package_stable)"
package_policy => "add",
package_method => yuck,
classes => if_repaired("package_changed");
}
我想将此更改为包含测试的主机
添加测试是否足够?我无法理解dist_class ::和stable是什么。
-stable&安培; dist_class ::
+ 测试&安培;稳定&安培; dist_class ::
答案 0 :(得分:1)
我相信你应该使用OR运算符'||'而不是和'&'/'&&'运算符(假设您正在讨论代表所有三个类都需要相同软件包安装的服务器组的类)。使用&符号(&)或点(。)将只匹配属于所有三个类而不是个人的服务器。 https://docs.cfengine.com/docs/3.5/manuals-language-concepts-classes.html
如果你想只匹配同时匹配所有三个类定义的服务器,那么&符号就是其中之一。
我个人喜欢尽可能保持原子性,所以我实际上分别为所有三个类定义了promises,或者为通用包创建了一个新类,以确保上述服务器属于该类。