如何将 InSpec 测试限制为特定 OS 版本
How to limit InSpec test to a specific OS Version
我们有一本在 centos 6 和 7 机器上使用的食谱。在 7 上安装最新版本的节点,在 6 上安装特定版本的节点。同样在 6 上,它安装了我们在 7 上没有安装的某些其他软件包。我试图弄清楚如何编写一个 InSpec 测试,如果我们正在测试一个 centos,它只会 exectuce/assert 事情处于给定状态6盒。我该怎么做?
运行 这与测试厨房。
您将使用伪资源 os
。这会公开大量有关底层平台的信息,但在这种情况下,您需要 os[:release].start_with?('6')
(与 7
类似)。
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 参考中找到有关此资源(以及上面的示例)的更多信息:
我们有一本在 centos 6 和 7 机器上使用的食谱。在 7 上安装最新版本的节点,在 6 上安装特定版本的节点。同样在 6 上,它安装了我们在 7 上没有安装的某些其他软件包。我试图弄清楚如何编写一个 InSpec 测试,如果我们正在测试一个 centos,它只会 exectuce/assert 事情处于给定状态6盒。我该怎么做?
运行 这与测试厨房。
您将使用伪资源 os
。这会公开大量有关底层平台的信息,但在这种情况下,您需要 os[:release].start_with?('6')
(与 7
类似)。
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 参考中找到有关此资源(以及上面的示例)的更多信息: