我们有一本用于centos 6和7机器的食谱。在7上安装最新版本的节点,在6上安装特定版本的节点。同样在6它安装了我们不会安装在7上的某些其他软件包。我正在试图弄清楚如何编写一个InSpec测试,如果我们测试一个centos,那将只会解析/断言事情处于给定状态6盒。我该怎么做?
用测试厨房运行它。
答案 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参考中找到有关此资源(以及上面的示例)的更多信息: