Puppet 和 windowsfeature - 布尔错误

Puppet 和 windowsfeature - 布尔错误

我是 Puppet Enterprise 的新手,但正在尝试学习如何将自定义类文件部署到 Windows 服务器。我尝试使用 opentable/windowsfeature 模块,但当我的类尝试在节点上运行时出现错误。它似乎在 windowsfeature 模块中抛出了此错误 -

错误:无法从远程服务器检索目录:服务器上的错误 400:“true”不是布尔值。它看起来像是节点 test-server-02.testdomain.local 上 /etc/puppetlabs/puppet/environments/production/modules/windowsfeature/manifests/init.pp:64 上的字符串警告:未在失败的目录上使用缓存错误:无法检索目录;跳过运行

有人见过这个错误吗?或者知道如何解决它吗?模块代码尝试将变量初始化为 false,但我很困惑为什么当它尝试执行validate_bool($restart)时,错误提示它被设置为“true”字符串值。

下面是我安装的模块列表:
[root@testserver01 ~]# puppet module list
/etc/puppetlabs/puppet/environments/production/modules
═── linux_base_config (???)
═── nanliu-staging (v1.0.2)
═── opentable-windowsfeature (v1.0.0)
═── puppetlabs-concat (v1.1.2)
═── puppetlabs-powershell (v1.0.4)
═── puppetlabs-registry (v1.0.3)
═── puppetlabs-stdlib (v4.4.0)
═── puppetlabs-tomcat (v1.2.0)
└── windows_base_config (???)
/etc/puppetlabs/puppet/modules (未安装模块)
/opt/puppet/share/puppet/modules
═── puppetlabs-pe_accounts(v2.0.2-6-gd2f698c)
═── puppetlabs-pe_concat(v1.1.2-4-g2b7bba2)
═── puppetlabs-pe_console_prune(v0.1.1-4-g293f45b) ═──
puppetlabs-pe_inifile(v1.1.4-16-gcb39966)
═── puppetlabs-pe_java_ks(v1.2.4-35-g44fbb26)
═── puppetlabs-pe_postgresql(v3.4.4-15-g32e56ed)
═── puppetlabs-pe_razor(v0.2.1-9-g8d78ec2)
═── puppetlabs-pe_repo (v0.7.7-51-g5ba0427)
│── puppetlabs-pe_staging (v0.3.3-2-g3ed56f8)
│── puppetlabs-puppet_enterprise (v3.7.1-5-ga436912)
└── puppetlabs-reboot (v0.1.8)

答案1

虽然问题可能出在 windowsfeature 中的 init.pp 文件中,但几乎可以肯定不是。查看文件。第 64 行是一个验证函数,它检查几乎肯定是作为参数使用或通过 hiera 查找的 $restart 变量。简而言之,您的问题出在其他地方,最有可能是您将“$restart”值设置为“true”。

52   define windowsfeature (
53        $ensure = 'present',
54        $feature_name = $title,
55        $installmanagementtools = false,
56        $installsubfeatures = false,
57        $restart = false,
58        $source = false
59    ) {
60
61      validate_re($ensure, '^(present|absent)$', 'valid values for ensure are \'present\' or \'absent\'')
62      validate_bool($installmanagementtools)
63      validate_bool($installsubfeatures)
64      validate_bool($restart)

错误表明它被设置为“真”字符串值。

值为 的变量true与值为 的变量不同"true"。一个是字符串,另一个是布尔值。

相关内容