从厨师食谱访问变量inspec测试

时间:2018-05-09 15:10:44

标签: ruby chef test-kitchen inspec

我有一个带有下面代码的厨师食谱,我需要编写一个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

1 个答案:

答案 0 :(得分:0)

它们完全独立运行,因此您无法直接共享变量。但是,您可以将数据从Chef端写入JSON文件,并从InSpec中读回。可能不值得这么小的东西。