我有一个带有下面代码的厨师食谱,我需要编写一个inspec测试,检查文件是否存在。我知道如何检查文件是否存在,但是运行if / check(ruby / chef新手)然后获取变量' project' out for the cookbook并将其作为文件路径的一部分。
if auth_basic_pass && auth_basic_pass.length > 0
auth_basic_pass.each do |element|
project = element.split("/").first
cookbook_file project + ".pass" do
path "/usr/local/nginx/conf/" + project + ".pass"
notifies :reload, 'service[nginx]', :delayed
end
end
end
修改
这是我到目前为止所做的,目前它有意跳过因为值设置为true来模拟现有的auth_basic_pass
。
describe file ('/usr/local/nginx/conf/'+ 'project' + '.pass') do
let(:auth_basic_pass) { true }
before do
skip if auth_basic_pass # auth_basic_pass variable doesn't exist but I can't find the location in the vm
end
it { should exist }
end
答案 0 :(得分:0)
它们完全独立运行,因此您无法直接共享变量。但是,您可以将数据从Chef端写入JSON文件,并从InSpec中读回。可能不值得这么小的东西。