我想将body package_method
一些变量放在 promises.cf 或其他文件中,并且我应该能够从我编写的任何新 CF 文件中调用它。
这可能吗?我在文档中找不到与此类方法相关的任何内容。
我本来想创建一个新文件/var/cfengine/masterfiles/
,然后编辑/var/cfengine/promises.cf
并插入新文件,inputs
但没有成功。
这是我想要放入的内容(可能放在一个新文件中),它应该是全局可访问的。
bundle common variables
{
vars:
"global_var_1" string => "value_var_1";
}
和
body package_method yum
{
any::
package_changes => "bulk";
package_list_command => "/usr/bin/yum list installed";
package_list_name_regex => "([^.]+).*";
package_list_version_regex => "[^\s]\s+([^\s]+).*";
package_list_arch_regex => "[^.]+\.([^\s]+).*";
package_installed_regex => ".*installed.*";
package_name_convention => "$(name).$(arch)";
package_name_regex => "amanda-client";
package_arch_regex => "x86_64";
package_add_command => "/usr/bin/yum -y install";
package_delete_command => "/bin/rpm -e";
package_verify_command => "/bin/rpm -V";
}
然后我应该能够在任何新的 CF 中这样调用它:
"${variables.global_var_1}"
和
bundle agent packages
{
packages:
"wget"
package_policy => "add",
package_method => yum;
}
答案1
解决了。
创建全局变量:
创建一个variables.cf
并在该文件中插入以下行。
bundle common variables
{
vars:
"global_var_1" string => "value_var_1";
}
然后创建任意 CF 但在body common control
-输入variables.cf
文件下。
body common control
{
bundlesequence => { "myclasses" };
inputs => { "variables.cf" };
}
然后您可以将变量调用为"${variables.global_var_1}"
。
全局调用package_method
:
在任何新的 CF 下body common control
输入文件/var/cfengine/masterfiles/lib/packages.cf
body common control
{
bundlesequence => { "myclasses", "packages_to_install" };
inputs => { "/var/cfengine/masterfiles/lib/packages.cf" };
}
然后你可以添加类似的包
bundle agent packages_to_install
{
packages:
"wget"
package_policy => "add",
package_method => yum;
}