2016-04-12 1 views
0

オーバライドを行う際にシェフのレシピで元の実行リストにアクセスしたいと思います。既にこれを行うためのオブジェクトがありますか?今すぐ取得します:レシピで元のランリストにアクセス

[2016-04-12T20:14:27+00:00] WARN: Run List override has been provided. 
[2016-04-12T20:14:27+00:00] WARN: Original Run List: [role[foo], role[bar]] 
[2016-04-12T20:14:27+00:00] WARN: Overridden Run List: [recipe[baz]] 

レシピ[baz]ロール[foo]がノードのデフォルト実行リストにあることを知りたいと思います。

これに似た何か:

if node.original_runlist.includes?('role[foo]') 
    do_something 
else 
    do_something_else 

ありがとうございました!

答えて

0

ほとんどの属性は、シェフの実行開始時にOhaiによって設定されます。
cookbookで最初のコマンドとしてohaiを実行し、出力をキャッチして、基本的なOhai属性の完全なリストを取得しようとする場合があります。
しかし、次のような属性はレシピから入手できます。
node['recipes']ノード(およびそのノードの実行リストの一部)に関連付けられているレシピのリスト。 node['roles']ノードに関連付けられているロールのリスト(およびそのノードの実行リストの一部( ))。
詳細here

+0

vvchik、ご返信ありがとうございます。私は実際にコードを見て、クライアントがnode.primary_runlistを実行していることを発見しました。これは私が探していたものを私に提供します。 – john

0

前述のように、私はnode.primary_runlistを見つけました。誰かが興味を持っている場合:

run_list = node.primary_runlist 
if run_list.includes?('role[foo]') 
    do_something 
else 
    do_something_else 
end 
関連する問題