Ресурс azure_resource_group
Используйте ресурс проверки Chef InSpec, чтобы проверить количество ресурсов Azure в группе ресурсов.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс впервые стал доступен в версии v2.0.16 InSpec.
Синтаксис
Имя группы ресурсов указывается как параметр ресурса:
describe azure_resource_group(name: 'MyResourceGroup') do
its('property') { should eq 'value' }
end
где
-
MyResourceGroup— это имя группы ресурсов, которая проверяется -
property— это свойство ресурса -
value— ожидаемый результат от совпадения
Примеры
Следующие примеры показывают, как использовать этот ресурс проверки Chef InSpec:
Проверка правильного количества ресурсов в группе ресурсов
describe azure_resource_group_resource_count(name: 'InSpec-Azure') do
its('total') { should eq 7}
end
Проверка, что группа ресурсов содержит правильные ресурсы
describe azure_resource_group_resource_count(name: 'InSpec-Azure') 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
Параметры
group_namename
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
Если оба group_name и name установлены, name имеет приоритет.
Эти параметры также можно установить, используя переменные среды:
AZURE_RESOURCE_GROUP_NAMEAZURE_RESOURCE_NAME
При установке параметров и переменных среды, переменные среды имеют приоритет.
Пример параметра
describe azure_generic_resource(group_name: 'InSpec-Azure', name: 'Linux-Internal-VM') do
its('location') { should eq 'westeurope' }
end
Свойства
namelocationidprovisioning_statesubscription_idtotalnic_countvm_countextension_countvnet_countsa_countpublic_ip_countmanaged_disk_image_countmanaged_disk_counttag_count
name
Проверяет имя группы ресурсов.
its('name') { should cmp 'InSpec-Azure' }
location
Проверяет местоположение группы ресурсов в Azure.
its('location') { should cmp 'westeurope' }
id
Проверяет полный квалифицированный идентификатор группы ресурсов.
Этот формат: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>.
its('id') { should cmp 'FQDN' }
provisioning_state
Проверяет состояние подготовки группы ресурсов.
its('provisioning_state') { should cmp 'Succeeded' }
total
Проверяет общее количество ресурсов в группе ресурсов.
its('total') { should eq 13 }
nic_count
Проверяет количество сетевых адаптеров в группе ресурсов.
it { should have_nics }
its('nic_count') { should eq 3 }
vm_count
Проверяет количество виртуальных машин в группе ресурсов.
its('vm_count') { should eq 5 }
vnet_count
Проверяет количество виртуальных сетей в группе ресурсов.
its('vnet_count') { should eq 5 }
sa_count
Проверяет количество хранилищ учетных записей в группе ресурсов.
its('sa_count') { should eq 5 }
public_ip_count
Проверяет количество общедоступных IP-адресов в группе ресурсов.
its('public_ip_count') { should eq 5 }
managed_disk_image_count
Проверяет количество образов управляемых дисков в группе ресурсов.
Управляемые диски создаются из образов дисков и затем подключаются к машинам. Обычно образы создаются из базового образа или пользовательского образа (например, Packer).
its('managed_disk_image_count') { should eq 5 }
managed_disk_count
Проверяет количество управляемых дисков в группе ресурсов.
Если группа ресурсов содержит одну виртуальную машину с системным диском и 2 данными дисками, которые все являются управляемыми дисками, то счет будет 3.
its('managed_disk_count') { should eq 3 }
Совпадения
Этот ресурс имеет ряд специальных совпадений, которые обеспечивают простой способ проверки существования определенного типа ресурса Azure в группе ресурсов.
Полный список доступных совпадений см. на нашей странице совпадений.
have_nics
Используйте это совпадение, чтобы проверить, существуют ли сетевые интерфейсы.
it { should have_nics }
have_vms
Используйте это совпадение, чтобы проверить, существуют ли виртуальные машины.
it { should have_vms }
have_extensions
Используйте это совпадение, чтобы проверить наличие расширений виртуальных машин.
it { should have_extensions }
have_nsgs
Используйте это совпадение, чтобы проверить существование групп безопасности сети.
it { should have_nsgs }
have_vnets
Используйте это совпадение, чтобы проверить существование виртуальных сетей.
it { should have_vnets }
have_managed_disks
Используйте это совпадение, чтобы проверить существование управляемых дисков.
it { should have_managed_disks }
have_managed_disk_images
Используйте это совпадение, чтобы проверить существование образов управляемых дисков.
it { should have_managed_disk_images }
have_sas
Используйте это совпадение, чтобы проверить существование хранилищ учетных записей.
it { should have_sas }
have_public_ips
Используйте это совпадение, чтобы проверить существование общедоступных IP-адресов.
it { should have_public_ips }
Теги
Можно проверить теги, которые были назначены ресурсу. Есть некоторые свойства для проверки, имеет ли ресурс теги, правильное количество тегов и правильные теги.
have_tags
Это простая проверка того, назначены ли теги машине или нет.
it { should have_tags }
tag_count
Возвращает количество тегов, назначенных ресурсу.
its ('tag_count') { should eq 2 }
tags
Можно проверить, установлен ли определенный тег на ресурсе.
its('tags') { should include 'owner' }
xxx_tag
Для получения значения тега создаются некоторые свойства из самих тегов.
Например, если следующий тег установлен на ресурсе:
- owner: JG Jinglehimerschmidt
Тогда доступно свойство Owner_tag.
its('owner_tag') { should cmp 'JG Jinglehimerschmidt' }
Примечание: имя тега чувствительно к регистру, что делает тест чувствительным к регистру. Например, owner_tag не равно Owner_tag.
Ссылки
Дополнительную информацию о ресурсах Azure Ruby SDK см. по следующим ссылкам:
© 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_resource_group/