我是Puppet Enterprise的新手,但是尝试学习如何将自定义类文件部署到Windows服务器。 我正在尝试使用opentable / windowsfeature模块,但是当我的类尝试在节点上运行时出现错误。 它看起来像是在windowsfeature模块中抛出这个错误 –
错误:无法从远程服务器检索目录:SERVER上的错误400:“true”不是布尔值。 它看起来是一个string在/etc/puppetlabs/puppet/environments/production/modules/windowsfeature/manifests/init.pp:64节点test-server-02.testdomain.local警告:不使用caching失败的目录错误:无法检索目录; 跳过跑步
有没有人看过这个错误之前,或知道如何解决它? 模块代码尝试初始化variables为false,但我很困惑,为什么当它尝试做一个validate_bool($重新启动),错误是说它被设置为“真正的”string值。
以下是我已安装的模块列表:
[root @ testserver01〜]#puppet模块列表
的/ etc / puppetlabs /木偶/环境/生产/模块
├──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 /木偶/共享/木偶/模块
├──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)
虽然它可能看起来问题来自于windowsfeature中的init.pp文件,但它几乎肯定不是。 看看这个文件。 第64行是一个validation函数,它检查$ restartvariables,几乎肯定是作为parameter passing的,或者是通过hiera查找的。 简单的答案是,你的问题是在别的地方,最有可能的地方是你把'$重新启动'值设置为'真'。
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”string值。
值为true的variables与值为"true"的variables不同。 一个是string,另一个是布尔值。