Spec-Zone.ru › Chef 18

Ресурс azure_generic_resource

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

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

Этот ресурс устарел и не должен использоваться. Он будет удалён в Chef InSpec 5.0. Вместо использования демонстрационных Azure-ресурсов, включённых в Chef InSpec, используйте пакет ресурсов 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_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