Как ограничить тест InSpec конкретной версией ОС

У нас есть кулинарная книга, которая используется на машинах Centos 6 и 7. На 7 он устанавливает последнюю версию узла, на 6 он устанавливает конкретную версию узла. Также на 6 он устанавливает некоторые другие пакеты, которые мы не устанавливаем на 7. Я пытаюсь выяснить, как написать тесты InSpec, которые будут показывать / утверждать, что вещи находятся в состоянии дачи, если мы тестируем коробку centos 6, Как мне это сделать?

Работаю с тестовой кухней.

2 ответа

Решение

Вы бы использовали псевдо-ресурс os, Это предоставляет кучу информации о базовой платформе, но в этом случае вы хотите os[:release].start_with?('6') (и аналогично для 7).

InSpec имеет ресурс ОС. Вот пример того, как его использовать:

if os.family == 'debian'
  describe port(69) do
    its('processes') { should include 'in.tftpd' }
  end
elsif os.family == 'redhat'
  describe port(69) do
    its('processes') { should include 'xinetd' }
  end
end

Вы можете найти больше об этом ресурсе (и примере выше) в ссылке InSpec:

https://www.inspec.io/docs/reference/resources/os/

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