我必须编写一个定义各种主机组的策略,对于一个特定的事物,它应该根据主机组检查一组参数。
例如,我有两个不同的web集群,在一个集群中,httpd.conf保存在/usr/local/apache/httpd.conf下,而对于另一个集群,则保存在/etc/httpd/httpd.conf下。
我有一个策略来检查这些配置的文件更改,但我想要一种方法,可以为特定的主机组定义它应该检查的确切位置。
任何暗示,帮助都是非常感激的。
发布于 2014-06-19 07:22:23
一般的答案是,您为每个组定义一个类,并根据该类将适当的路径分配到变量上。例如:
vars:
group1::
"httpd_conf" string => "/usr/local/apache/httpd.conf";
group2::
"httpd_conf" string => "/etc/httpd/httpd.conf";然后在文件操作中使用$(httpd_conf),它将根据组具有正确的值。
潜在的欺骗者部分是如何定义这些类。在这种情况下,它取决于您的设置和首选项。例如,您可以通过显式列出每个组中的主机来定义这些类:
classes:
"group1" or => { "host1", "host2", "host3" };
"group2" or => { "host4", "host5", "host6" };或者通过与主机名模式进行匹配:
classes:
"group1" expression => classmatch("grp1.*");
"group2" expression => classmatch("grp2.*");还有其他的可能性。要获得完整的治疗,请查看我的书“为主机组定义类”第6章中的“学习CFEngine 3”。
https://stackoverflow.com/questions/24300518
复制相似问题