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

Ken*_*nic 7 chef-infra inspec

我们有一本用于centos 6和7机器的食谱.在7上安装最新版本的节点,在6上安装特定版本的节点.同样在6安装需要我们不7.安装我试图找出如何写只会exectuce /断言的事情是在给国家,如果我们正在测试一个CentOS 6箱的INSPEC测试某些其他包.我该怎么做呢?

用测试厨房运行这个.

cod*_*ger 7

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


jam*_*iss 5

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
Run Code Online (Sandbox Code Playgroud)

您可以在 InSpec 参考中找到有关此资源(以及上面的示例)的更多信息:

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