2017-06-29 23 views
0

シェフプロビジョニングを使用して、次のconvergence_optionsを使用して一連のWindows Server 2012 VMをプロビジョニングします。マニュアルに従ってシェフプロビジョニングでコンバージェンスオプションが選択されない

convergence_options: { 
    chef_config: "ssl_verify_mode :verify_none", # String containing additional text to inject into client.rb 
    chef_version: '12.18.31', 
    install_msi_url: 'https://packages.chef.io/files/stable/chef/12.18.31/windows/2012r2/chef-client-12.18.31-1-x64.msi', 
    ignore_failure: [259, 35, 37] 
    } 

プロパティはまったく効果を持つされていないように見えますがignore_failureプロパティは、指定した終了コードの失敗を無視すべきです。

(プロビジョニングされたマシンでのコンバージェンスの失敗(再起動時にゼロ以外の終了コードからの)コンバージェンスの失敗は、引き続きプロビジョニング操作全体を停止しています)。

================================================================================ 
Error executing action `converge` on resource 'machine[dvps01]' 
================================================================================ 

RuntimeError 
------------ 
Error: command '$env:path = [System.Environment]::GetEnvironmentVariable('PATH', 'MACHINE');chef-client -l auto' exited with code 259. 

+0

マシンリソースコール全体を貼り付けてください。 –

+0

ignore_failureは特定のリソースの結果コードを無視できます。あなたのハッシュはchef_configプロパティに渡したものであるように思えますが、これは 'machine'リソースオプションの場合は正しくなる可能性がなく、ignore_failureはTrueまたはFalseでなければなりません。 Szymonが言ったように、全体像を与えるか、私たちは手助けできません – Tensibai

答えて

0

さらなる調査の後で、単に収束オプションとしてignore_failureを渡すだけでは十分ではないようです。

私はdriver.rbが含まれていることを確認する必要がありました:

require 'chef/provisioning/convergence_strategy/ignore_convergence_failure' 

私はまた、彼らはignore_failure機能が動作するように期待される方法を確認するためにシェフ・プロビジョニングレポでテストを相談しました。 ignore_convergence_failure_spec.rbでは、我々は以下を参照してください。そのために

let(:test_class) do 
    t = TestConvergeClass.new(convergence_options, test_error) 
    t.extend(Chef::Provisioning::ConvergenceStrategy::IgnoreConvergenceFailure) 
    t 
    end 

を、私はdriver.rbconvergence_strategy_forに次を追加しました:

machine.extend(Chef::Provisioning::ConvergenceStrategy::IgnoreConvergenceFailure) 

このすべては、クライアントが失敗だった収束するようなignore_failureの予想される動作の結果無視される。

関連する問題