如何在Inspec命令中使用属性?

时间:2018-12-11 13:58:53

标签: shell chef inspec

我定义了一些基本的Inspec测试来检查负载均衡器是否处于活动状态:

proxy = attribute('proxy_netlb_arn')

control 'Checks if all the ECE Load balancers are active ' do
impact 1.0
title 'Checks if all the ECE Load balancers are active'
describe command("aws elbv2 describe-load-balancers --load-balancer-arn proxy['value'] | jq -r '.[][].State.Code'") do
    its('stdout') { should match "active" }
end
end

我使用一个名为“ proxy”的变量,其中包含负载均衡器的ARN。不幸的是,变量本身不能被识别,因为它在命令内部。

1 个答案:

答案 0 :(得分:1)

您应该使用string interpolation来获取字符串变量的值。

假设proxy['value']返回proxy变量的值。那么您可以按照以下步骤进行操作:

proxy = attribute('proxy_netlb_arn')

control 'Checks if all the ECE Load balancers are active ' do
impact 1.0
title 'Checks if all the ECE Load balancers are active'
describe command("aws elbv2 describe-load-balancers --load-balancer-arn #{proxy['value']} | jq -r '.[][].State.Code'") do
    its('stdout') { should match "active" }
end
end