inspec/docs/resources/azure_resource_group.md
Russell Seymour cdc643974d Removed double space after . in text
Copied `eq` matcher text instead of linking
Renamed template files

Signed-off-by: Russell Seymour <russell.seymour@turtlesystems.co.uk>
2017-03-02 10:41:05 +00:00

3.1 KiB

title
About the azure_resource_group Resource

azure_resource_group

Use the azure_resource_group InSpec audit resource to ensure that an Azure Resource group has the correct resources.

References

Syntax

The name of the resource group is specified as an attribute on the resource:

describe azure_resource_group(name: 'MyResourceGroup') do
  its('matcher') { should eq 'value' }
end

where

  • MyResourceGroup is the name of the resource group being interrogated
  • matcher is one of
    • total
    • count
    • nic_count
    • vm_count
    • vnet_count
    • sa_count
    • public_ip_count
    • contains
  • value is the expected output from the matcher

For example:

describe azure_resource_group(name: 'ChefAutomate') do
  its('total') { should eq 7}
  its('nic_count') { should eq 1 }
  its('vm_count') { should eq 1 }
end

Matchers

This InSpec audit resource has the following matchers:

eq

Use the eq matcher to test the equality of two values: its('Port') { should eq '22' }.

Using its('Port') { should eq 22 } will fail because 22 is not a string value! Use the cmp matcher for less restrictive value comparisons.

total

The total number of resources in the resource group

nic_count

The number of network interface cards in the resource group

vm_count

The number of virtual machines in the resource group

vnet_count

The number of virtual networks in the resource group

sa_count

The number of storage accounts in the resource group

public_ip_count

The number of Public IP Addresses in the resource group

contains

The contains filter allows testing of resources that are not directly supported by the resource pack:

its('contains') { should be true }

This matcher is best used in conjunction with filters, for example the following tests that a Managed Disk image exists in the resource group

describe azure_resource_group(name: 'MyResourceGroup').where { type: 'Microsoft.Compute/images' } do
  its('contains') { should be true }
end

count

The count filter allows testing for the number of resources that are not directly supported by the resource pack:

As before it is best used in conjunction with a filter. The following checks that there is at least 1 Managed Disk Image in the resource group.

describe azure_resource_group(name: 'MyResourceGroup').where { type: 'Microsoft.Compute/images' } do
  its('count') { should > 1 }
end

Examples

The following examples show how to use this InSpec audit resource

Test Resource Group has the correct number of resources

describe azure_resource_group(name: 'ChefAutomate') do
  its('total') { should eq 7}

Ensure that the Resource Group contains the correct resources

describe azure_resource_group(name: 'ChefAutomate') do
  its('total') { should eq 7 }
  its('vm_count') { should eq 2 }
  its('nic_count') { should eq 2 }
  its('public_ip_count') { should eq 1 }
  its('sa_count') { should eq 1 }
  its('vnet_count') { should eq 1 }
end