azurerm_virtual_machines ресурс
Используйте ресурс аудита 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
Критерии фильтрации
platformnameos_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_disksdata_disksvm_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/