Spec-Zone.ru › Chef 16

ресурс azure_virtual_machine

[редактировать на GitHub]

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

Доступность

Установка

Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.

Версия

Этот ресурс стал доступен в версии v2.0.16 InSpec.

Синтаксис

Для этого ресурса требуется имя машины и группа ресурсов в качестве свойств.

describe azure_virtual_machine(group_name: 'MyResourceGroup', name: 'MyVM') do
  its('property') { should eq 'value' }
end

где

  • MyVm — имя виртуальной машины в Azure; это не имя хоста машины
  • MyResourceGroup — имя группы ресурсов машины
  • 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_name
  • name
  • apiversion

Ниже приведены параметры, которые можно передать в ресурс.

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

Используйте этот параметр для определения группы Azure Resource, которую необходимо проверить.

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_NAME
  • AZURE_RESOURCE_NAME
  • AZURE_RESOURCE_API_VERSION

Если параметры заданы, а также переменные среды, приоритет имеют переменные среды.

Свойства

  • type, location, name, publisher, offer, sku, os_type, os_disk_name, have_managed_osdisk, caching, create_option, disk_size_gb, have_data_disks, data_disk_count , storage_account_type, vm_size, computer_name, admin_username, have_nics, nic_count, connected_nics, have_password_authentication, password_authentication?, have_custom_data, custom_data?, have_ssh_keys, ssh_keys?, ssh_key_count, ssh_keys, have_boot_diagnostics, boot_diagnostics_storage_uri

Примеры свойств

Этот ресурс аудита Chef InSpec имеет следующие свойства, которые можно проверить:

тип

Тип Azure ресурса. Для виртуальной машины это всегда вернет Microsoft.Compute/virtualMachines

its('type') { should cmp 'Microsoft.Compute/virtualMachines' }

местоположение

Местоположение машины

its('location') { should eq 'westeurope' }

имя

Имя виртуальной машины в Azure. Имейте в виду, что это не имя компьютера или имя хоста, а имя машины, видимое в Azure Portal.

its('name') { should cmp 'InSpec-Azure' }

разработчик

Разработчик образа сборки этой машины.

nil если машина была создана из пользовательского образа.

its('publisher') { should cmp 'MicrosoftWindowsServer' }

предложение

Предложение от разработчика образа сборки.

nil если машина была создана из пользовательского образа.

its('offer') { should cmp 'WindowsServer' }

sku

Элемент от разработчика, который использовался для создания образа.

nil если машина была создана из пользовательского образа.

its('sku') { should cmp '2016-Datacenter' }

тип_os

Тестирование, которое возвращает классификацию в Azure типа операционной системы. Обычно это Linux или Windows.

its('os_type') { should cmp 'Windows' }

имя_диска_os

Возвращает имя диска операционной системы, подключенного к машине.

its('os_disk_name') { should cmp 'Windows-Internal-OSDisk-MD' }

кеширование

Возвращает тип кеширования, установленного на диске операционной системы.

its('caching') { should cmp 'ReadWrite' }

вариант_создания

При создании диска операционной системы как оно было создано, устанавливается как свойство. Это свойство возвращает, как был создан диск.

its('create_option') { should cmp 'FromImage' }

размер_диска_gb

Возвращает размер диска операционной системы.

its('disk_size_gb') { should be >= 30 }

количество_дисков_данных

Возвращает количество дисков данных, подключенных к машине.

тип_учета_хранилища

Это предоставляет тип учетной записи хранилища для машины, использующей управляемые диски для диска операционной системы.

its('storage_account_type') { should cmp 'Standard_LRS' }

размер_vm

Размер машины в Azure

its('vm_size') { should eq 'Standard_DS2_v2' }

имя_компьютера

Имя машины. Это то, что было назначено машине во время развертывания, и то, что должно возвращаться командой hostname.

its('computer_name') { should cmp 'win-internal-1' }

имя_пользователя_админа

Имя пользователя администратора, назначенное машине

ПРИМЕЧАНИЕ: Azure не позволяет использовать Administrator в качестве имени пользователя администратора на машине Windows

its('admin_username') { should cmp 'azure' }

количество_сетевых_интерфейсов

Количество сетевых интерфейсных карт, подключенных к машине

its('nic_count') { should eq 1 }

подключенные_сетевые_интерфейсы

Это возвращает массив идентификаторов сетевых интерфейсов, подключенных к машине. Это означает, что можно проверить, что к машине подключены правильные сетевые интерфейсы, а следовательно, и правильный подсеть.

its('connected_nics') { should include /Inspec-NIC-1/ }

Обратите внимание на использование здесь регулярного выражения. Это связано с тем, что идентификатор сетевого интерфейса — это длинная строка, содержащая идентификатор подписки, группу ресурсов, идентификатор машины, а также другую информацию. Используя регулярное выражение, можно проверить сетевой интерфейс, не разделяя эту строку. Это также означает, что могут быть выполнены и другие тесты.

Пример строки идентификатора: /subscriptions/1e0b427a-d58b-494e-ae4f-ee558463ebbf/resourceGroups/Inspec-Azure/providers/Microsoft.Network/networkInterfaces/Inspec-NIC-1

аутентификация_по_паролю?

Булево значение, указывающее, включена ли аутентификация по паролю для пользователя администратора.

its('password_authentication?') { should be false }

Это относится только к машинам Linux и всегда возвращает true на Windows.

дополнительные_данные

Булево значение, указывающее, содержит ли машина дополнительные данные.

its('custom_data') { should be true }

ключи_ssh?

Булево значение, указывающее, доступна ли машина с помощью ключей SSH.

its('ssh_keys?') { should be true }

### количество_ключей_ssh

Возвращает количество ключей SSH, примененных к машине.

Это относится только к машинам Linux и всегда возвращает 0 на Windows.

its('ssh_key_count') { should eq '0' }

ключи_ssh

Возвращает массив ключей, назначенных машине. Это позволяет проверить, назначены ли правильные ключи.

Большинство общедоступных ключей SSH имеют подпись в конце, которую можно проверить. Например:

its('ssh_keys') { should include /azure@inspec.local/ }

boot_diagnostics_storage_uri

Если для машины включены диагностические данные запуска, они будут сохранены в учетной записи хранения. Этот метод возвращает URI для учетной записи хранения.

its('boot_diagnostics_storage_uri') { should match 'ghjgjhgjg' }

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

Доступно несколько встроенных операторов сравнения для проверки результата с ожидаемым значением.

Для получения информации обо всех доступных операторах обратитесь к странице Справочник по соответствиям Chef InSpec.

boot_diagnostics?

Булево значение, проверяющее, включены ли диагностические данные запуска на машине.

it { should have_boot_diagnostics }

иметь_дополнительные_данные

Возвращает булево значение, указывающее, есть ли у машины дополнительные данные.

it { should have_custom_data }

иметь_диски_данных

Указывает, подключены ли к машине диски данных.

it { should have_data_disks }

иметь_управляемый_диск_os

Определите, является ли диск операционной системы управляемым диском или нет.

Этот тест можно использовать следующим образом:

it { should have_managed_osdisk }

иметь_сетевые_интерфейсы

Возвращает булево значение, указывающее, подключены ли к машине сетевые интерфейсы.

Это можно использовать следующим образом:

it { should have_nics }

иметь_аутентификацию_по_паролю

Возвращает булево значение, обозначающее, доступна ли машина с помощью пароля.

it { should have_password_authentication }

иметь_ключи_ssh

Булево значение, указывающее, назначены ли машине ключи SSH.

it { should have_ssh_keys }

Для машины Windows это всегда будет ложно.

Теги

Возможно проверить теги, назначенные ресурсу. Есть несколько свойств, которые можно вызвать для проверки наличия тегов, правильного количества тегов и правильности назначенных тегов.

иметь_теги

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

it { should have_tags }

количество_тегов

Возвращает количество тегов, назначенных ресурсу.

its ('tag_count') { should eq 2 }

теги

Можно проверить, установлен ли определенный тег на ресурсе.

its('tags') { should include 'Owner' }

xxx_тег

Для получения значения тега создано несколько тестов из заданных тегов.

Например, если на ресурсе задан следующий тег:

  • владелец: J.G. Jingleheimerschmidt

Тогда доступен тест, называемый Owner_tag.

its('owner_tag') { should cmp 'J.G. Jingleheimerschmidt' }

Примечание: Имя тега чувствительно к регистру, что делает тест чувствительным к регистру. Например, owner_tag не равно Owner_tag.

Ссылки

  • Azure Ruby SDK - Ресурсы
  • Внешняя виртуальная машина
  • Внутренняя виртуальная машина

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

Spec-Zone.ru

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