Доступ к проверке переменных inspec из поваренной книги шеф-повара - PullRequest
0 голосов
/ 09 мая 2018

У меня есть поваренная книга шеф-повара с приведенным ниже кодом, и мне нужно написать тест 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

EDIT

Это то, что я имею до сих пор, в настоящее время он намеренно пропускается, потому что значение установлено в 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 голосов
/ 09 мая 2018

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

...