Spec-Zone.ru › Chef 16

Ресурс azure_generic_resource

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

Предупреждение

Этот ресурс устарел и не должен использоваться. Он будет удален в Chef InSpec 5.0. Вместо использования демонстрационных Azure-ресурсов, включенных в Chef InSpec, используйте пакет ресурсов inspec-azure, который предлагает богатые функциональные возможности и специфические ресурсы для многих распространённых случаев использования.

Используйте ресурс аудита Chef InSpec azure_generic_resource для проверки любого допустимого ресурса 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_name
  • name
  • apiversion
  • type

Вот параметры, которые можно передать ресурсу.

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_NAME
  • AZURE_RESOURCE_NAME
  • AZURE_RESOURCE_TYPE
  • AZURE_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/

Spec-Zone.ru

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