Я использую тестовую среду inspec с ruby для тестирования инфраструктуры.Я написал тест в элементах управления
Вот мой тест:
require 'aws-sdk'
credentials = Aws::AssumeRoleCredentials.new(
role_arn: 'some_value',
role_session_name: 'pipeline')
client_params = {
region: 'ap-southeast-2',
credentials: credentials
}
ec2_client = Aws::EC2::Resource.new(client_params)
instance = ec2_client.instances(filters: [{name:'tag:component', values: ['api', 'fxsnet', 'admin']}])
puts "ec2 Client is : #{ec2_client}"
puts "list of instances based on tag is: #{instance}"
instance.each do |i|
puts 'ID: ' + i.id
puts 'State: ' + i.state.name
#for each of the instance check if tmp file exist
describe file('/tmp') do # The actual test
it { should exist }
end
end
но при выполнении я получаю ошибку ниже
An error occurred while loading ./inspec-infra-tests/controls/apiInstances.rb.
Failure/Error:
describe file('/tmp') do # The actual test
it { should exist }
end
NoMethodError:
undefined method `file' for main:Object
Did you mean? fail
# ./inspec-infra-tests/controls/apiInstances.rb:46:in `block in <top (required)>'
# ./inspec-infra-tests/controls/apiInstances.rb:35:in `<top (required)>'
No examples found.
0 examples, 0 failures, 0 passed
файл InSpec для аудита ресурсапроверить все типы системных файлов, включая файлы, каталоги, символические ссылки, именованные каналы, сокеты и т. д.
#InspecWithRuby #inspec #inspecResourcesNotIdentified #InspecResourcesNotFound