Доступ к проверке переменных inspec из поваренной книги шеф-повара

У меня есть поваренная книга с кодом ниже, и мне нужно написать тест inspec для проверки наличия файла. Я знаю, как проверить, существует ли файл или нет, но у меня проблемы с запуском if / check (новичок в ruby ​​/ chef), а затем выводом переменной 'project' для поваренной книги и использованием ее как части пути к файлу.

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 ответ

Они работают совершенно отдельно, поэтому вы не можете обмениваться переменными напрямую. Однако вы можете записать данные в файл JSON со стороны Chef и прочитать их обратно из InSpec. Вероятно, не стоит этого для чего-то такого маленького, хотя.

Другие вопросы по тегам