Spec-Zone.ru › Chef 17

azurerm_virtual_machines ресурс

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

Используйте ресурс аудита InSpec, чтобы проверить свойства, связанные с виртуальными машинами в группе ресурсов.

Версия Azure REST API

Этот ресурс взаимодействует с версией 2017-12-01 API управления Azure. Дополнительную информацию можно найти в официальной документации Azure.

В настоящее время нет способа выбрать версию документации Azure API. Если вы заметите упоминание новой версии в официальной документации, пожалуйста, откройте вопрос или отправьте запрос на изменение с использованием обновленной версии.

Доступность

Установка

Этот ресурс доступен в inspec-azure пакете ресурсов. Чтобы использовать его, добавьте следующее в свой inspec.yml в профиле верхнего уровня:

depends:
  - name: inspec-azure
    git: https://github.com/inspec/inspec-azure.git

Вам также необходимо настроить свои учетные данные Azure; см. README пакета ресурсов.

Версия

Этот ресурс впервые стал доступен в версии 1.0.0 пакета ресурсов inspec-azure.

Синтаксис

resource_group должен быть указан в качестве параметра.

describe azurerm_virtual_machines(resource_group: 'MyResourceGroup') do
  ...
end

Примеры

# Exists if any virtual machines exist in the resource group
describe azurerm_virtual_machines(resource_group: 'MyResourceGroup') do
  it { should exist }
end

# Filters based on platform
describe azurerm_virtual_machines(resource_group: 'MyResourceGroup').where(platform: 'windows') do
  it { should exist }
end

Параметры

  • resource_group

Примеры параметров

resource_group (обязательно)

describe azurerm_virtual_machines(resource_group: 'MyResourceGroup') do
  ...
end

Критерии фильтрации

  • platform
  • name
  • os_disk

платформа

Фильтрует результаты, отображая только те, которые соответствуют заданной платформе. Допустимые варианты — linux и windows.

# Insist that you have at least one windows virtual machine
describe azurerm_virtual_machines(resource_group: 'MyResourceGroup').where(platform: 'windows') do
  it { should exist }
end

имя

Фильтрует результаты, отображая только те, которые соответствуют заданному имени.

# Insist that you have at least one virtual machine that starts with 'MyVm'
describe azurerm_virtual_machines(resource_group: 'MyResourceGroup').where { name.start_with?('WindowsVm') } do
  it { should exist }
end

Атрибуты

  • os_disks
  • data_disks
  • vm_names

os_disks

Предоставляет список имен дисков ОС для всех виртуальных машин в группе ресурсов.

its('os_disks.sort') { should eq ['MyDisk1', 'MyDisk2'] }

data_disks

Предоставляет список дисков данных для всех виртуальных машин в группе ресурсов.

its('os_disks.sort') { should eq [['MyDisk1'], ['MyDisk2']] }

Обратите внимание, что возвращается массив массивов. Для тестирования вы можете их сплющить:

its('os_disks.flatten.sort') { should eq ['MyDisk1', 'MyDisk2'] }

vm_names

Предоставляет список всех имен виртуальных машин в группе ресурсов.

its('vm_names') { should include('MyVm1', 'MyVm2') }

Сопоставители

В этом ресурсе аудита InSpec используются следующие специальные сопоставители. Полный список доступных сопоставителей можно найти на нашей странице универсальных сопоставителей.

exists

# Should not exist if no virtual machines are in the resource group
describe azurerm_virtual_machines(resource_group: 'MyResourceGroup') do
  it { should_not exist }
end

# Should exist if the filter returns a single virtual machine
describe azurerm_virtual_machines(resource_group: 'MyResourceGroup').where(platform: 'windows') do
  it { should exist }
end

Разрешения Azure

Ваш сервисный принцип должен быть настроен с ролью contributor на подписке, которую вы хотите проверить.

© 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/azurerm_virtual_machines/

Spec-Zone.ru

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