0

如果在我的脚本中我想使用在容器中运行的 ruby​​ 库(不是 inspec 二进制文件)来测试 azure 资源:

def my_resource_groups
    rg = Inspec::Runner.new(conf={:vendor_cache=>'/app'})
    rg.add_target('/app/profiles/azure')
    rg.run
end

my_resource_groups()

有了这个inspec.yml定义

name: inspector
title: Azure InSpec Profile
maintainer: The Authors
copyright: The Authors
copyright_email: you@example.com
license: Apache-2.0
summary: An InSpec Compliance Profile For Azure
version: 0.1.0
inspec_version: '>= 2.2.7'
depends:
- name: inspec-azure
  url: https://github.com/inspec/inspec-azure/archive/master.tar.gz

而这个测试:

title "Azure Resource group spike"

control 'azure_resource_groups' do
  describe azure_resource_group do
    its('names') { should include 'my_resource_group1' }
  end
end

我得到:

Skipping profile: 'inspector' on unsupported platform: 'debian/10.7'.

如何将等效-t azure://参数传递给我的 ruby​​ 脚本,就像我这样做一样:

sudo docker run \
-v /home/vagrant/scratch/share:/share \
-e AZURE_CLIENT_SECRET="some_secret" \
-e AZURE_CLIENT_ID="some_client_id" \
-e AZURE_TENANT_ID="some_tenant_id" \
-e AZURE_SUBSCRIPTION_ID="some_subscription_id" \
chef/inspec \
exec /share/inspector \
-t azure:// \
--chef-license=accept
4

1 回答 1

0

以防万一其他人遇到这个问题,在实例化它时将选项作为映射传递给 runner 对象。(请注意,供应商缓存也已整理)

def my_resource_groups
    rg = Inspec::Runner.new({:target=>'azure://',:vendor_cache=>'/app'})
    rg.add_target('/app/profiles/azure')
    rg.run
end

my_resource_groups()
于 2021-02-03T07:50:07.263 回答