Spec-Zone.ru › Chef 17

azure_resource_group ресурс

[править на GitHub]

Используйте azure_resource_group_resource_count ресурс аудита 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_name
  • name

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_NAME
  • AZURE_RESOURCE_NAME

Когда параметры установлены, а также переменные среды, переменные среды имеют приоритет.

Пример параметра

describe azure_generic_resource(group_name: 'InSpec-Azure', name: 'Linux-Internal-VM') do
  its('location') { should eq 'westeurope' }
end

Свойства

  • name
  • location
  • id
  • provisioning_state
  • subscription_id
  • total
  • nic_count
  • vm_count
  • extension_count
  • vnet_count
  • sa_count
  • public_ip_count
  • managed_disk_image_count
  • managed_disk_count
  • tag_count

name

Проверяет имя группы ресурсов.

its('name') { should cmp 'InSpec-Azure' }

location

Проверяет, где в Azure расположена группа ресурсов.

its('location') { should cmp 'westeurope' }

id

Проверяет полное квалифицированное 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 можно найти по следующим ссылкам:

  • 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API