我的食谱中有2个食谱,即Get.rb
和Post.rb
。
Get.rb
创建一个文件app.conf
,最终在Post.rb
中打开。
因此Post.rb
取决于Get.rb
,因此在我的运行列表中,我首先放置Get.rb
,然后放置Post.rb
。
当我运行chef-client时,我收到了食谱编译错误,因为文件app.conf
不存在。
看起来厨师同时编制两个食谱。 解决这个问题的方法是什么?
编辑: 我走到这一步:
ruby_block 'run' do
action :nothing
file = ::File.read('/etc/test.conf')
data = JSON.parse(file) unless file.nil?
puts data
only_if { File.exist?('/etc/test.conf') }
end
我仍然收到错误。这个街区可能出现什么问题?
答案 0 :(得分:0)
查看https://coderanger.net/two-pass/以获取完整说明,但基本上您希望使用惰性帮助程序重新编写代码或创建自定义资源。
答案 1 :(得分:0)
是否进行了一些编辑:
ruby_block 'run' do
action :run
block do
file = ::File.read('/etc/test.conf')
data = JSON.parse(file) unless file.nil?
puts data
end
only_if { File.exist?('/etc/test.conf') }
end