web-dev-qa-db-ja.com

Puppetとwindowsfeature-ブールエラー

私はPuppetEnterpriseを初めて使用しますが、カスタムクラスファイルを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モジュールリスト
/etc/puppetlabs/puppet/environment/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-レジストリ(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-再起動(v0.1.8)

1
Jeff Coe

問題はwindowsfeatureのinit.ppファイルにあるように見えるかもしれませんが、ほぼ確実にそうではありません。ファイルを見てください。 64行目は検証関数であり、hieraを使用してパラメーターとして渡された、または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"の変数とは異なります。 1つは文字列で、もう1つはブール値です。

0
Zoredache