inspec/test/azure/verify/controls/generic_windows_internal_vm.rb
Jared Quick 42779e91a7 Setup azure resources into inspec.
Signed-off-by: Jared Quick <jquick@chef.io>
2018-02-07 16:05:58 -05:00

49 lines
2.2 KiB
Ruby

title 'Internal Virtual Machine Properties'
control 'azure-generic-vm-windows-internal-2.0' do
impact 1.0
title 'Ensure Windows Internal VM was built with the correct Image and has the correct properties'
# Ensure that the virtual machine has been created with the correct attributes
describe azure_generic_resource(group_name: 'Inspec-Azure',
name: 'Windows-Internal-VM') do
its('location') { should cmp 'westeurope' }
# check the storage profile for the machine
its('properties.storageProfile.imageReference.publisher') { should cmp 'MicrosoftWindowsServer' }
its('properties.storageProfile.imageReference.offer') { should cmp 'WindowsServer' }
its('properties.storageProfile.imageReference.sku') { should cmp '2016-Datacenter' }
# Check the disk for the machine
its('properties.storageProfile.osDisk.osType') { should cmp 'Windows' }
its('properties.storageProfile.osDisk.name') { should cmp 'Windows-Internal-OSDisk-MD' }
its('properties.storageProfile.osDisk.caching') { should cmp 'ReadWrite' }
# This machine has been setup with a Managed Disk for the OSDisk, ensure that
# it is linked to the correct disk
its('properties.storageProfile.osDisk.managedDisk.id') { should match 'Windows-Internal-OSDisk-MD' }
its('properties.storageProfile.osDisk.managedDisk.storageAccountType') { should cmp 'Standard_LRS' }
# Esnure that the machine has a data disk attached
its('properties.storageProfile.dataDisks.count') { should eq 1 }
# Check the hardwareProfile
its('properties.hardwareProfile.vmSize') { should cmp 'Standard_DS2_v2' }
# Check the network interfaces
its('properties.networkProfile.networkInterfaces.count') { should eq 1 }
# Determine the authentication and OS type
its('properties.osProfile.computerName') { should eq 'win-internal-1' }
its('properties.osProfile.adminUsername') { should eq 'azure' }
its('properties.osProfile.windowsConfiguration.provisionVMAgent') { should be true }
its('properties.osProfile.windowsConfiguration.enableAutomaticUpdates') { should be false }
# There should be no tags
it { should_not have_tags }
end
end