8

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

用测试厨房运行这个。

4

2 回答 2

7

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

于 2016-10-01T03:28:20.293 回答
5

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/

于 2018-08-03T16:59:08.177 回答