如何在 Puppet Manifest 中使用变量?

如何在 Puppet Manifest 中使用变量?

我在 Centos 7.2 上使用 WSUS 模块和 Puppet Master。我的 Puppet Agent 服务器运行的是 Windows Server 2012。

我想使用带有变量的清单。但是,当 Puppet Agent 服务器运行 Puppet Agent 时,它会显示“错误 400,语法错误”。我尝试过重写清单以及我能想到的所有变体。但总是出现错误。

以下是清单的一个示例:

class excellent {
    class { 'wsus_client':
       $cool = 'Saturday'
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
}
}

我尝试在括号 {} 中分配变量。我尝试使用 $LOAD_PATH、--custom-dir 和 FACTERLIB。但我不知道如何使用这三个中的任何一个。

我想在一个地方更改变量并在其父类范围内使用它。我该怎么做?

答案1

你有尝试过这种方法吗?

class excellent {
  $cool = 'Saturday'

  class { 'wsus_client':
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
  }
}

或者这样

class excellent (
  $cool = 'Saturday'
){
  class { 'wsus_client':
    server_url => 'http://acme.com',
    auto_update_option  => 'Scheduled'
    scheduled_install_day => $cool,
    scheduled_install_hour => 1,
  }
}

答案2

您目前似乎正在尝试为类声明。您的变量赋值需要分开。

$cool = 'Saturday'

你的类声明应该是这样的。

class {'namevar':
  a => 'a',
  b => 'b',
  c => 'c'
}

相关内容