ラッパーのクックブック レシピで、上流のクックブック (ceph) からシェフのレシピの一部を巻き戻そうとしています。簡単にまとめると、特定の必要なサービスが起動して実行される前に、ceph ユーザー プールの作成ブロックがデプロイの早い段階で実行されています。サービスが実行されているときに、ランリストのさらに下で実行される新しいラッパーレシピに移動しています。
この目的のために、ceph::mon アップストリーム レシピから以下のブロックを巻き戻し、新しいラッパー レシピの後の時点でそれを実行しようとしています。私のコードは現在次のとおりです。
include_recipe 'workday::chef-client'
require 'chef/rewind'
include_recipe 'ceph::mon'
if node['ceph']['user_pools']
# Create user-defined pools
node['ceph']['user_pools'].each do |pool|
ceph_pool pool['name'] do
unwind "pool"
pg_num pool['pg_num']
create_options pool['create_options'] if pool['create_options']
end
end
end
シェフクライアントからのエラー出力:
NoMethodError
-------------
undefined method `unwind' for Chef::Resource::CephPool
私はさまざまな巻き戻しステートメントを試みました:例えば
unwind "ceph_pool pool['name']"
unwind "pool['name']"
以前にリソースに対してアンワインド/リワインドを使用したことがありますが (例: "execute x")、これを正しくアンワインドする方法がわかりません。シェフの巻き戻しから入手できる限定されたドキュメントを読みましたが、これに対する解決策が見つかりません。