Project: Chef InSpec (Provisioning / Security & Compliance)
File: azurerm_virtual_machines.md

+++ title = "azurermvirtualmachines resource" draft = false gh_repo = "inspec" platform = "azure" [menu] [menu.inspec] title = "azurermvirtualmachines" identifier = "inspec/resources/azure/azurermvirtualmachines.md azurermvirtualmachines resource" parent = "inspec/resources/azure" +++ {{< inspec/azurermdeprecated resource="azurevirtual_machines" >}} Use the `azurermvirtualmachines` InSpec audit resource to test properties related to virtual machines for a resource group. This resource interacts with version `2017-12-01` of the Azure Management API. For more information see the . At the moment, there doesn't appear to be a way to select the version of the Azure API docs. If you notice a newer version being referenced in the official documentation please open an issue or submit a pull request using the updated version. This resource is available in the `inspec-azure` [resource pack](/inspec/glossary/#resource-pack). To use it, add the following to your `inspec.yml` in your top-level profile: depends: name: inspec-azure git: https://github.com/inspec/inspec-azure.git You'll also need to setup your Azure credentials; see the resource pack . This resource first became available in 1.0.0 of the inspec-azure resource pack. The `resource_group` must be given as a parameter. describe azurermvirtualmachines(resource_group: 'MyResourceGroup') do ... end describe azurermvirtualmachines(resource_group: 'MyResourceGroup') do it { should exist } end describe azurermvirtualmachines(resource_group: 'MyResourceGroup').where(platform: 'windows') do it { should exist } end `resource_group` describe azurermvirtualmachines(resource_group: 'MyResourceGroup') do ... end `platform` `name` `os_disk` Filters the results to only include those that match the given platform. Valid choices are `linux` and `windows`. describe azurermvirtualmachines(resource_group: 'MyResourceGroup').where(platform: 'windows') do it { should exist } end Filters the result to only those that match the given name. describe azurermvirtualmachines(resourcegroup: 'MyResourceGroup').where { name.startwith?('WindowsVm') } do it { should exist } end `os_disks` `data_disks` `vm_names` Gives a list of OS disk names for all the virtual machines in the resource group. its('os_disks.sort') { should eq ['MyDisk1', 'MyDisk2'] } Gives a list of data disks for all the virtual machines in the resource group. its('os_disks.sort') { should eq [['MyDisk1'], ['MyDisk2']] } Note that it returns an array of arrays. You may flatten them for testing: its('os_disks.flatten.sort') { should eq ['MyDisk1', 'MyDisk2'] } Gives a list of all the virtual machine names in the resource group. its('vm_names') { should include('MyVm1', 'MyVm2') } {{< readfile file="content/inspec/reusable/md/inspecmatcherslink.md" >}} This resource has the following special matchers. describe azurermvirtualmachines(resource_group: 'MyResourceGroup') do it { should_not exist } end describe azurermvirtualmachines(resource_group: 'MyResourceGroup').where(platform: 'windows') do it { should exist } end Your [Service Principal](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal) must be setup with a `contributor` role on the subscription you wish to test.