创建全局变量:

创建全局变量:

我想将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;
}

相关内容