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