我有兩個廚師食譜我想運行在一個明確的順序。首先是安裝配方,然後是配置。紅寶石塊不執行代碼,只有打印輸出
這裏是代碼調用配方:
ruby_block "bowbridge_config" do
block do
run_context.include_recipe "ids::bowbridge_config"
end
action :nothing
end
ruby_block "bowbridge_install" do
block do
run_context.include_recipe "sap-bowbridge::default"
end
notifies :run, 'ruby_block[bowbridge_config]', :delayed
end
我成功執行配置配方但當配置配方僅執行打印件被打印前的安裝配方。
配置食譜代碼:
mcaf_lib = find_file "/opt/bowbridge/libAVB*_mcaf.so"
Chef::Log.info("==> bowbridge_config mcaf_lib is #{mcaf_lib}. Vsi file is #{vsi_file}")
bb_cfg = File.basename(find_file "/opt/bowbridge/bbvsa*.cfg")
Chef::Log.info("==> bowbridge_config recipe is triggered")
# Setup bowbridge config file
directory "/etc/bowbridge" do
end
file "/etc/bowbridge/" + bb_cfg do
owner 'root'
group 'root'
mode 0755
content ::File.open("/opt/bowbridge/" + bb_cfg).read
action :create
end
Chef::Log.info("==> bowbridge_config before link creation")
link "/lib64/libvsa.so" do
to "#{mcaf_lib}"
end
上面的代碼顯示這樣的輸出:
[2017-02-24T11:25:36+00:00] INFO: ruby_block[bowbridge_install] sending run action to ruby_block[bowbridge_config] (delayed)
[2017-02-24T11:25:36+00:00] INFO: Processing ruby_block[bowbridge_config] action run (ids::default line 82)
[2017-02-24T11:25:37+00:00] INFO: ==> bowbridge_config recipe is triggered
[2017-02-24T11:25:37+00:00] INFO: ==> bowbridge_config before link creation
[2017-02-24T11:25:37+00:00] INFO: ruby_block[bowbridge_config] called
不需要/ etc /正在創建bowbridge目錄和內部/沒有創建鏈接lib64下。我可能做錯了什麼?從您的實際2個紅寶石塊
如果你不打算給資源添加任何特定的選項,比如目錄'/ etc/bowbridge',你不需要添加do/end塊,只需要保留:'directory'/ etc/bowbridge'' – Navarro