0

我正在使用 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 报告函数中输出的版本变量,或者我必须使用其他工具来做到这一点?

提前致谢。

4

2 回答 2

0

使用这篇文章https://discourse.chef.io/t/customise-testing-report/11722/4,我设置了一个简单的技巧来使用 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
于 2020-04-26T08:01:51.663 回答
0

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

[...]
its('version') { should match /2\.8\.8/ }
[...]
于 2020-04-20T08:08:00.783 回答