食谱编译错误 - 厨师
Recipe compile error - Chef
我的食谱中有 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
我仍然收到错误。这个区块可能有什么问题?
查看 https://coderanger.net/two-pass/ 以获得完整解释,但基本上您想使用惰性帮助程序重新编写代码或创建自定义资源。
是否经过一些编辑:
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
我的食谱中有 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
我仍然收到错误。这个区块可能有什么问题?
查看 https://coderanger.net/two-pass/ 以获得完整解释,但基本上您想使用惰性帮助程序重新编写代码或创建自定义资源。
是否经过一些编辑:
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