我正在尝试从我的包装食谱食谱中的上游食谱 (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
chef-client 的错误输出:
NoMethodError
-------------
undefined method `unwind' for Chef::Resource::CephPool
我尝试了各种放松语句:例如
unwind "ceph_pool pool['name']"
unwind "pool['name']"
我以前在资源上使用过展开/倒带(例如“执行 x”),但我不确定如何正确展开。我已经阅读了 chef-rewind 提供的有限文档,但我找不到解决方案。