获取版本变量作为 InSpec Report 中的输出

Getting the version variable as a output in InSpec Report

我正在使用 chef inspc 来验证使用加壳器创建的 AMI 图像是否符合标准。其中一项要求是检查 AMI 映像之间的版本差异。

我有以下代码检查 ansible 版本 2.8。

control 'Ansible check' do
  impact 1.0
  title 'Check anisble is installed'
    describe package('ansible') do
      it { should be_installed }
      its('version') { should match (/2.8.*/) }
    end
end

但是我需要获取完整版本变量来检查 AMI 之间的差异。例如 2.8.8

有没有办法在 inspec 报告函数中获取输出的版本变量,或者我是否必须使用其他工具来执行此操作?

提前致谢。

只在支票上加 8 有什么问题!?

[...]
its('version') { should match /2\.8\.8/ }
[...]

使用这个 post https://discourse.chef.io/t/customise-testing-report/11722/4,我设置了一个简单的 hack,使用 ruby.

将版本写入另一个文本文件

下面是我的代码。

f = File.open('versions.txt', 'a')

control 'Ansible check' do
  impact 1.0
  title 'Check anisble is installed'
    describe package('ansible') do
      it { should be_installed }
      its('version') { should match (/2.8.*/) }
      f.write("ansible : ", packages('ansible').versions[0], "\n")
    end
end

版本文件输出如下

# cat versions.txt
ansible : 2.8.10+dfsg-1