azurerm_virtual_machines ресурс
Используйте azurerm_virtual_machines ресурс проверки InSpec, чтобы проверить свойства, относящиеся к виртуальным машинам для группы ресурсов.
Версия Azure REST API
Этот ресурс взаимодействует с версией 2017-12-01 API управления Azure. Более подробная информация доступна в официальной документации Azure.
В настоящее время, похоже, нет способа выбрать версию документации API Azure. Если вы обнаружите упоминание более новой версии в официальной документации, пожалуйста, откройте вопрос или отправьте запрос на вытягивание с использованием обновлённой версии.
Доступность
Установка
Этот ресурс доступен в 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/