Диск данных виртуальной машины Azure
Используйте этот ресурс, чтобы убедиться, что определенный диск данных, подключенный к машине, был создан должным образом.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс стал доступен впервые в версии v2.0.16 InSpec.
Синтаксис
Для использования этого ресурса требуется имя группы ресурсов и имя машины.
describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'MyVM') do
its('property') { should eq 'value' }
end
где:
-
MyVm— имя виртуальной машины, как оно отображается в Azure. (Это не имя хоста машины) -
InSpec-Azure— имя группы ресурсов, в которой находится машина. -
property— свойство ресурса -
value— ожидаемый результат от матчера
Примеры
Следующие примеры демонстрируют использование этого ресурса проверки Chef InSpec.
Проверка правильности размера первого диска данных
describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Linux-Internal-VM').where(number: 1) do
its('size') { should cmp >= 15 }
end
Параметры ресурса
group_namenameapiversion
Примеры параметров
Доступные параметры для ресурса:
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
Эти параметры также можно задать с помощью переменных окружения:
AZURE_RESOURCE_GROUP_NAMEAZURE_RESOURCE_NAMEAZURE_RESOURCE_API_VERSION
Если параметры заданы и в переменных окружения, приоритет имеют переменные окружения.
Критерии фильтрации
numberdisk
Примеры фильтров
disk
Индекс диска, подключённого к машине, начиная с нуля.
describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Windows-Internal-VM').where(disk: 0)
end
number
Индекс диска, подключённого к машине, начиная с единицы.
describe azure_virtual_machine_data_disk(group_name: 'InSpec-Azure', name: 'Windows-Internal-VM').where(number: 1)
end
Свойства
-
count,disk,number,name,size,lun,caching,create_option,is_managed_disk?,vhd_uri,storage_account_name,storage_account_type,id,subscription_id,resource_group
Примеры свойств
count
Возвращает количество дисков данных, подключенных к машине.
its('count') { should eq 1 }
name
Возвращает имя диска в виде строки.
its('name') { should cmp 'linux-external-datadisk-1' }
size
Возвращает размер диска в ГБ в виде целого числа.
its('size') { should cmp >= 15 }
lun
Номер диска, как он отображается в Azure. Имеет индекс, начинающийся с нуля.
its('lun') { should cmp 0 }
caching
Строка, описывающая кэширование, установленное на диске.
its('caching') { should cmp 'none' }
create_option
Способ создания диска. Для дисков данных обычно это строка «Empty».
its('create_option') { should cmp 'Empty' }
is_managed_disk?
Булево значение, указывающее, является ли диск управляемым диском. Если это не управляемый диск, то он хранится в хранилище.
its('is_managed_disk?') { should cmp 'false' }
vhd_uri
Если это не управляемый диск, то vhd_uri будет полным URI диска в хранилище.
its('vhd_uri') { should cmp 'https://primary_storage.blob.core.windows.net/container_name/vm_name.vhd' }
storage_account_name
Если это не управляемый диск, это имя хранилища, в котором хранится диск.
Это получено из vhd_uri.
its('storage_account_name') { should cmp 'primary_storage' }
storage_account_type
Если это управляемый диск, это тип хранилища, например Standard_LRS.
its('storage_account_type') { should cmp 'Standard_LRS' }
id
Если это управляемый диск, это полный идентификатор диска в Azure.
its('id') { should cmp '/subscriptions/1234abcd-e567-890f-g123-456h78i9jkl0/resourceGroups/InSpec-Azure' }
subscription_id
Если это управляемый диск, это идентификатор подписки, в которой хранится диск.
Это получено из id.
its('subscription_id') { should cmp '1234abcd-e567-890f-g123-456h78i9jkl0' }
resource_group
Если это управляемый диск, это группа ресурсов, в которой хранится диск.
Это получено из id.
its('resource_group') { should cmp 'InSpec-Azure' }
## Матчеры
Этот ресурс проверки Chef InSpec имеет следующие специальные матчеры. Полный список доступных матчеров можно найти на странице матчеров.
Следующие свойства применяются к самой виртуальной машине, а не к конкретным дискам.
have_data_disks
Возвращает булево значение, указывающее, подключены ли к машине какие-либо диски данных.
it { should have_data_disks }
have_managed_disks
Возвращает булево значение, указывающее, использует ли машина управляемые диски для дисков данных.
it { should have_managed_disks }
Ссылки
© 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_virtual_machine_data_disk/