Ресурс azure_generic_resource
Предупреждение
inspec-azure, который предлагает богатые возможности и специфические ресурсы для многих общих случаев использования. Используйте azure_generic_resource ресурс проверки Chef InSpec, чтобы протестировать любой допустимый Azure-ресурс. Это очень полезно, если вам нужно проверить что-то, для чего у нас пока нет специфического ресурса Chef InSpec.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс стал доступен в версии InSpec v2.0.16.
Синтаксис
describe azure_generic_resource(group_name: 'MyResourceGroup', name: 'MyResource') do
its('property') { should eq 'value' }
end
где:
-
MyResourceGroup— имя группы ресурсов, содержащей Azure-ресурс, который нужно проверить -
MyResource— имя ресурса, который нужно проверить -
propertyЭтот универсальный ресурс динамически создаёт свойства на лету, исходя из типа целевого ресурса. -
value— ожидаемый результат выбранного свойства
Параметры
group_namenameapiversiontype
Доступные параметры для ресурса:
group_name (обязательно)
Используйте этот параметр для определения Azure-группы ресурсов, которую нужно проверить.
describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure') do
...
end
name
Используйте этот параметр для определения имени Azure-ресурса, который нужно проверить.
describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Windows-Internal-VM') do
...
end
apiversion
Версия API, используемая при запросе ресурса. По умолчанию используется последняя версия для ресурса.
describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Windows-Internal-VM', apiversion: '2.0') do
...
end
type
Используйте этот параметр для определения типа ресурсов, которые нужно проверить.
describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Windows-Internal-VM', apiversion: '2.0', type: 'Microsoft.Compute/virtualMachines') do
...
end
Эти параметры также могут быть заданы с помощью переменных среды:
AZURE_RESOURCE_GROUP_NAMEAZURE_RESOURCE_NAMEAZURE_RESOURCE_TYPEAZURE_RESOURCE_API_VERSION
Если параметры заданы как в переменных, так и в переменных среды, переменные среды имеют приоритет.
Пример параметров
describe azure_generic_resource(group_name: 'Inspec-Azure', name: 'Linux-Internal-VM', apiversion: '2.0') do
its('location') { should eq 'westeurope' }
end
Свойства
Проверяемые свойства полностью зависят от Azure-ресурса, который проверяется. Это означает, что свойства различаются. Лучший способ узнать доступные свойства — использовать портал Azure Resources, выбрать интересующий ресурс и посмотреть, что можно проверить.
Этот ресурс позволяет проверять любой допустимый Azure-ресурс. Недостатком является то, что язык проверки каждого элемента не такой естественный, как для собственного ресурса Chef InSpec.
Примеры свойств
Следующие примеры показывают, как использовать некоторые свойства аудита Chef InSpec:
Проверка расположения виртуальной машины
its('location') { should cmp 'westeurope' }
Проверка наличия указанного префикса адреса
its('properties.addressSpace.addressPrefixes') { should include '10.1.1.0/24' }
Проверка создания виртуальной машины с правильного диска
its('properties.creationData.createOption') { should eq 'FromImage' }
Проверка того, что образ — Ubuntu
its('properties.creationData.imageReference.id') { should match 'Canonical' }
its('properties.creationData.imageReference.id') { should match 'UbuntuServer' }
its('properties.creationData.imageReference.id') { should match '16.04.0-LTS' }
Проверка размера диска
its('properties.diskSizeGB') { should be > 25 }
Проверка состояния диска
its('properties.diskState') { should cmp 'Attached' }
Проверка отсутствия пользовательских настроек DNS
its('properties.dnsSettings.dnsServers.count') { should eq 0 }
its('properties.dnsSettings.appliedDnsServers.count') { should eq 0 }
Проверка подключения сетевого адаптера к правильному компьютеру
its('properties.virtualMachine.id') { should match 'Linux-External-VM' }
Проверка включения служб blob и файлов
its('properties.encryption.services.blob.enabled') { should be true }
its('properties.encryption.services.file.enabled') { should be true }
its('properties.encryption.keySource') { should cmp 'Microsoft.Storage' }
Проверка конфигурации оборудования
its('properties.hardwareProfile.vmSize') { should cmp 'Standard_DS2_v2' }
Проверка сетевых адаптеров
its('properties.networkProfile.networkInterfaces.count') { should eq 1 }
Проверка аутентификации и типа ОС
its('properties.osProfile.computerName') { should eq 'linux-external-1' }
its('properties.osProfile.adminUsername') { should eq 'azure' }
its('properties.osProfile.linuxConfiguration.disablePasswordAuthentication') { should be true }
Проверка правильности установки тегов
it { should have_tags }
its('tag_count') { should be 1 }
its('tags') { should include 'Description' }
its('Description_tag') { should match 'Externally facing' }
Сопоставители
Этот ресурс Chef InSpec проверки имеет следующие специальные сопоставители. Полный список доступных сопоставителей можно найти на нашей странице сопоставителей.
Ссылки
Более подробные примеры использования этого ресурса можно найти в интеграционных тестах.
Интеграционные тесты Chef InSpec для универсальных Azure-ресурсов
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/azure_generic_resource/