如何将InSpec测试限制为特定的操作系统版本

时间:2016-09-30 17:49:22

标签: chef inspec

我们有一本用于centos 6和7机器的食谱。在7上安装最新版本的节点,在6上安装特定版本的节点。同样在6它安装了我们不会安装在7上的某些其他软件包。我正在试图弄清楚如何编写一个InSpec测试,如果我们测试一个centos,那将只会解析/断言事情处于给定状态6盒。我该怎么做?

用测试厨房运行它。

2 个答案:

答案 0 :(得分:5)

您将使用伪资源os。这暴露了大量有关底层平台的信息,但在这种情况下,您需要os[:release].start_with?('6')(和7类似)。

答案 1 :(得分:2)

InSpec有一个os资源。这是一个使用方法的示例:

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/